netbeans 指定/修复Ant构建中wsimport使用的JDK

ca1c2owp  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(135)

我有一个使用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?

ee7vknir

ee7vknir1#

我已经找到了不同版本JDK中wsimport更改的位置。
我看你上课的路线是固定的:“com.太阳.工具.ws.蚂蚁.wsImport”
是否已检查以确认此路径在不同的JDK版本中是相同的?
这不是解决方案,只是问题来源的潜在指针。
来自Oozie国的欢呼,
热情/约翰

相关问题