如何使用默认值为pugin和JDK1.6的最新jaxb
自JDK1.6以来,jaxb xjc相关JAR被包括在内,并在使用java命令时由JVM自动加载。我目前正试图以以下方式使用xjc默认值插件:如何使用默认值为pugin和JDK1.6的最新jaxb,jaxb,jdk1.6,Jaxb,Jdk1.6,自JDK1.6以来,jaxb xjc相关JAR被包括在内,并在使用java命令时由JVM自动加载。我目前正试图以以下方式使用xjc默认值插件: java -Djava.endorsed.dirs=C:\workspace\javalibs\xjc -classpath C:\apache-ant-1.8.3\lib\ant.jar;c:\workspace\javalibs\xjc\cxf-xjc-dv-2.6.1.jar com.sun.tools.xjc.XJCFacade -d test
java -Djava.endorsed.dirs=C:\workspace\javalibs\xjc -classpath C:\apache-ant-1.8.3\lib\ant.jar;c:\workspace\javalibs\xjc\cxf-xjc-dv-2.6.1.jar com.sun.tools.xjc.XJCFacade -d test -extension -Xdv -verbose test.xsd
java.annowned.dirs
属性应该允许您使用更高的完整版本覆盖jaxb的jdk版本。jdk 1.6中使用的版本是2.1.10。因此,我将jaxb2.2相关的jar放在认可的dirs目录中。尽管如此,在执行java命令时,我还是遇到了以下错误:
Exception in thread "main" java.lang.LinkageError: loader constraint violation:
loader (instance of <bootloader>) previously initiated loading for a different type with name "com/sun/tools/xjc/outline/Outline"
at org.apache.cxf.xjc.dv.DefaultValuePlugin.run(DefaultValuePlugin.java:105)
at com.sun.tools.xjc.addon.apache_cxf.dv.DefaultValuePlugin.run(DefaultValuePlugin.java:59)
at com.sun.tools.xjc.model.Model.generateCode(Model.java:290)
at com.sun.tools.xjc.Driver.run(Driver.java:343)
at com.sun.tools.xjc.Driver.run(Driver.java:191)
at com.sun.tools.xjc.Driver._main(Driver.java:116)
at com.sun.tools.xjc.Driver.access$000(Driver.java:74)
at com.sun.tools.xjc.Driver$1.run(Driver.java:96)
线程“main”java.lang.LinkageError中的异常:加载程序约束冲突:
加载程序(的实例)以前为名为“com/sun/tools/xjc/outline/outline”的不同类型启动加载
位于org.apache.cxf.xjc.dv.DefaultValuePlugin.run(DefaultValuePlugin.java:105)
位于com.sun.tools.xjc.addon.apache_cxf.dv.DefaultValuePlugin.run(DefaultValuePlugin.java:59)
位于com.sun.tools.xjc.model.model.generateCode(model.java:290)
位于com.sun.tools.xjc.Driver.run(Driver.java:343)
位于com.sun.tools.xjc.Driver.run(Driver.java:191)
位于com.sun.tools.xjc.Driver.\u main(Driver.java:116)
访问com.sun.tools.xjc.Driver.access$000(Driver.java:74)
位于com.sun.tools.xjc.Driver$1.run(Driver.java:96)
然后我用JDK1.5测试了插件,这些类是由xjc正确生成的,没有任何问题。原因是JDK1.5不包括与jaxb xjc相关的JAR,因此它们没有预加载,因此没有链接错误冲突。我的问题是如何让JDK1.6使用我提供的jaxb JAR(通过java.annowned.dirs
或其他方式),而不是预打包的jaxb JAR,以便正确使用插件