weblogic 12c不允许匹配“[xX] [mM] [lL]”的处理指令目标

时间:2016-11-08 15:03:00

标签: jpa-2.0 weblogic12c ejb-3.1 persistence.xml

我正在将ejb 1.0应用程序迁移到ejb 3.1 app。当前应用程序在jdk 8上的WebLogic Server版本:12.1.3.0.0中运行。对于POC,我选择了一个会话bean和一个实体bean,并通过提供更新的ejb-jar.xml,orm.xml和持久性升级到3.1 .xml(下)。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="myPersistenceUnit" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:/myDataSource</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
 <property name="hibernate.show_sql" value="false"/>
 <property name="useColumnNamesInFindColumn" value="true"/>
 <property name="useOldAliasMetadataBehavior" value="true"/>
</properties>
</persistence-unit>
</persistence>

但是我收到了下面的xml解析错误:

weblogic.application.ModuleException: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
    at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:175)
    at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:170)
    at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:80)
    at weblogic.work.ContextWrap.run(ContextWrap.java:40)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; The processing instruction target matching "[xX][mM][lL]" is not allowed.

我已经确认persistence.xml位于我的ejb-jar / META-INF目录中。如果我从我的ejb.jar中删除persistence.xml,则错误消失,会话bean查找发生,实体bean持久性失败。所以我假设错误是使用persistence.xml。我已经以utf-8格式保存了persistence.xml。我还确保在<?之前没有空格,正如一些帖子所建议的那样。有什么指针吗?

1 个答案:

答案 0 :(得分:0)

错误是由我的orm.xml中的第一条评论引起的:

ZeroDivisionError --  division by zero
Traceback (most recent call last):
  File "python", line 13, in <module>
MyCustomException

The processing instruction target matching "[xX][mM][lL]" is not allowed回答 - <!-- file to hold Document orm --> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" version="1.0"> <entity

之前不能有任何字符