我有一个使用Ant的NetBeans 14自由格式项目。它在build.xml
中使用了wsimport
,并且很多目标都依赖于wsimport
。在使用了几个JDK(至少1.8和17)之后,我在构建时遇到了麻烦,因为wsimport
选择了错误的JDK。
在build.xml
(摘录)中:
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
<classpath>
<pathelement location="${lib}/jaxws22/jaxws-tools.jar"/>
</classpath>
</taskdef>
<target name="wsimport">
<wsimport
wsdl="http://address/to/wsdl.xml"
catalog="${metainf}/jax-ws-catalog.xml"
destdir="${release}"
sourcedestdir="${src-gen}"
keep="true"
extension="true"
verbose="true">
<depends file="${metainf}/jax-ws-catalog.xml"/>
<depends file="${wsdl}/wsdl.xml"/>
<produces dir="${src-gen}"/>
</wsimport>
</target>
<target name="compile" depends="init,wsimport" description="compile the source">
<javac ... />
</target>
问题是运行wsimport
时似乎选择了JDK17,而我希望它选择JDK1.8。输出如下:
command line: wsimportC:\path\to\jdk-17.0.2\bin\java.exe ... http://address/to/wsdl.xml
其中:
java.lang.NoClassDefFoundError: com/sun/org/apache/xml/internal/resolver/CatalogManager
at com.sun.tools.ws.wscompile.WsimportOptions.parseArguments(WsimportOptions.java:317)
...
这是因为我不使用JDK17。在这种情况下,我如何使wsimport
使用正确的JDK?
1条答案
按热度按时间ee7vknir1#
我已经找到了不同版本JDK中wsimport更改的位置。
我看你上课的路线是固定的:“com.太阳.工具.ws.蚂蚁.wsImport”
是否已检查以确认此路径在不同的JDK版本中是相同的?
这不是解决方案,只是问题来源的潜在指针。
来自Oozie国的欢呼,
热情/约翰