用weblogic8.1+JBuilder2005编写EJB程序.编译时出现下面错误:
""StockManagementEJB.jar": Error in descriptor line 31: Error parsing file at line: 31 column: 17. The content of element type "table-map" must match "(table-name,field-map*,verify-rows?,verify-columns?,optimistic-column?)".."StockManagementEJB.jar": D:\bea\jdk141_05\bin\javaw -classpath "D:\bea\weblogic81\server\lib\weblogic_sp.jar;D:\bea\weblogic81\server\lib\weblogic.jar;D:\bea\weblogic81\server\lib\webservices.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\commons-httpclient-2.0.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\aspectjrt-1.1.1.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\cactus-1.6.1.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\commons-logging-1.0.3.jar;D:\Borland\JBuilder2005\thirdparty\junit3.8\junit.jar;D:\Borland\JBuilder2005\lib\unittest.jar;" weblogic.appc -keepgenerated -forceGeneration -compiler D:/bea/jdk141_05/bin/javac D:/cvery/StockManagementPro/StockManagementEJB.jar.jar -output D:/cvery/StockManagementPro/StockManagementEJB.jar"StockManagementEJB.jar": <2010-3-23 下午12时44分49秒 CST> <Warning> <EJB> <BEA-010202> <Call-by-reference is not enabled for the EJB 'StockManagementData'. The server will have better performance if it is enabled. To enable call-by-reference, set the enable-call-by-reference element to True in the weblogic-ejb-jar.xml deployment descriptor for this EJB.>
"StockManagementEJB.jar": [J2EE:160119]Appc is unable to process the file 'D:\cvery\StockManagementPro\StockManagementEJB.jar.jar'. The following error occurred:
"StockManagementEJB.jar": [EJB:011019]While reading META-INF/weblogic-cmp-rdbms-jar.xml, the persistence layer of the Entity EJB failed to deploy. The error was:
"StockManagementEJB.jar": Error in descriptor line 31: Error parsing file at line: 31 column: 17. The content of element type "table-map" must match "(table-name,field-map*,verify-rows?,verify-columns?,optimistic-column?)"..
"StockManagementEJB.jar": at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:255)
"StockManagementEJB.jar": at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
"StockManagementEJB.jar": at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:387)
"StockManagementEJB.jar": at weblogic.appc.compileEJB(appc.java:802)
"StockManagementEJB.jar": at weblogic.appc.compileEJB(appc.java:776)
"StockManagementEJB.jar": at weblogic.appc.compileInput(appc.java:463)
"StockManagementEJB.jar": at weblogic.appc.runBody(appc.java:184)
"StockManagementEJB.jar": at weblogic.utils.compiler.Tool.run(Tool.java:146)
"StockManagementEJB.jar": at weblogic.utils.compiler.Tool.run(Tool.java:103)
"StockManagementEJB.jar": at weblogic.appc.main(appc.java:1028)另查weblogic-cmp-rdbms-jar.xml文件,原来为:
<field-map>
<cmp-field>userName</cmp-field>
<dbms-column>userName</dbms-column>
</field-map>
没有错误,编译后jar里全变成为
<field-map>
<cmp-field>userName</cmp-field>
</dbms-column>
</field-map>而原始的文件里没有变化.百思不得其解,恳请各位大虾大慈大悲救救.
""StockManagementEJB.jar": Error in descriptor line 31: Error parsing file at line: 31 column: 17. The content of element type "table-map" must match "(table-name,field-map*,verify-rows?,verify-columns?,optimistic-column?)".."StockManagementEJB.jar": D:\bea\jdk141_05\bin\javaw -classpath "D:\bea\weblogic81\server\lib\weblogic_sp.jar;D:\bea\weblogic81\server\lib\weblogic.jar;D:\bea\weblogic81\server\lib\webservices.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\commons-httpclient-2.0.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\aspectjrt-1.1.1.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\cactus-1.6.1.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-cactus-13-1.6.1\lib\commons-logging-1.0.3.jar;D:\Borland\JBuilder2005\thirdparty\junit3.8\junit.jar;D:\Borland\JBuilder2005\lib\unittest.jar;" weblogic.appc -keepgenerated -forceGeneration -compiler D:/bea/jdk141_05/bin/javac D:/cvery/StockManagementPro/StockManagementEJB.jar.jar -output D:/cvery/StockManagementPro/StockManagementEJB.jar"StockManagementEJB.jar": <2010-3-23 下午12时44分49秒 CST> <Warning> <EJB> <BEA-010202> <Call-by-reference is not enabled for the EJB 'StockManagementData'. The server will have better performance if it is enabled. To enable call-by-reference, set the enable-call-by-reference element to True in the weblogic-ejb-jar.xml deployment descriptor for this EJB.>
"StockManagementEJB.jar": [J2EE:160119]Appc is unable to process the file 'D:\cvery\StockManagementPro\StockManagementEJB.jar.jar'. The following error occurred:
"StockManagementEJB.jar": [EJB:011019]While reading META-INF/weblogic-cmp-rdbms-jar.xml, the persistence layer of the Entity EJB failed to deploy. The error was:
"StockManagementEJB.jar": Error in descriptor line 31: Error parsing file at line: 31 column: 17. The content of element type "table-map" must match "(table-name,field-map*,verify-rows?,verify-columns?,optimistic-column?)"..
"StockManagementEJB.jar": at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:255)
"StockManagementEJB.jar": at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
"StockManagementEJB.jar": at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:387)
"StockManagementEJB.jar": at weblogic.appc.compileEJB(appc.java:802)
"StockManagementEJB.jar": at weblogic.appc.compileEJB(appc.java:776)
"StockManagementEJB.jar": at weblogic.appc.compileInput(appc.java:463)
"StockManagementEJB.jar": at weblogic.appc.runBody(appc.java:184)
"StockManagementEJB.jar": at weblogic.utils.compiler.Tool.run(Tool.java:146)
"StockManagementEJB.jar": at weblogic.utils.compiler.Tool.run(Tool.java:103)
"StockManagementEJB.jar": at weblogic.appc.main(appc.java:1028)另查weblogic-cmp-rdbms-jar.xml文件,原来为:
<field-map>
<cmp-field>userName</cmp-field>
<dbms-column>userName</dbms-column>
</field-map>
没有错误,编译后jar里全变成为
<field-map>
<cmp-field>userName</cmp-field>
</dbms-column>
</field-map>而原始的文件里没有变化.百思不得其解,恳请各位大虾大慈大悲救救.
Upgrade to JDK 142_05 and higher or uninstall WinXP's "GB18030 Support Package" patch will resolve it.以上解决方法来自BEA dev2dev