gpt4 book ai didi

web-services - 如何在 wsgen 类路径中引用 *.jar 文件

转载 作者:行者123 更新时间:2023-12-04 04:38:32 25 4
gpt4 key购买 nike

我在 ANT 文件中使用 wsgen 定义我的类路径时遇到问题。

    <target name="wsgen">
<property name="wsgen_cp" value="./build/classes/" />

<echo message="classpath is : ${wsgen_cp}"/>
<exec executable="wsgen">
<!-- Classpath -->
<arg value="-verbose" />
<arg value="-classpath" />
<arg value="${wsgen_cp}" />
<!-- Sortie des sources -->
<arg value="-d" />
<arg value="${project.build.dir}/build/generated/"/>
<arg value="-r" />
<arg value="${project.build.dir}/build/wsdl"/>
<arg value="-s" />
<arg value="${project.build.dir}/build/sources"/>
<!-- Classes de WebServices -->
<arg value="-keep" />
<arg value="rpm.patient.wsimpl.RpmPatientInterfaceImpl" />
</exec>
</target>

运行目标后,出现以下错误:
[exec] Exception in thread "main" java.lang.NoClassDefFoundError: rpm/patient/RpmPatientInterface
[exec] at java.lang.ClassLoader.defineClass1(Native Method)
[exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
[exec] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[exec] at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
[exec] at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
[exec] at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
[exec] at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[exec] at java.security.AccessController.doPrivileged(Native Method)
[exec] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
[exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
[exec] at com.sun.tools.internal.ws.wscompile.WsgenOptions.getClass(WsgenOptions.java:287)
[exec] at com.sun.tools.internal.ws.wscompile.WsgenOptions.validateEndpointClass(WsgenOptions.java:223)
[exec] at com.sun.tools.internal.ws.wscompile.WsgenOptions.validate(WsgenOptions.java:214)
[exec] at com.sun.tools.internal.ws.wscompile.WsgenTool.run(WsgenTool.java:110)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[exec] at java.lang.reflect.Method.invoke(Method.java:601)
[exec] at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:120)
[exec] at com.sun.tools.internal.ws.WsGen.main(WsGen.java:42)
[exec] Caused by: java.lang.ClassNotFoundException: rpm.patient.RpmPatientInterface
[exec] at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[exec] at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[exec] at java.security.AccessController.doPrivileged(Native Method)
[exec] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
[exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
[exec] ... 21 more

当我将相应的 jar 附加到我的类路径(rpm/patient/RpmPatientInterface 所在的位置)时:


似乎类路径无效,因为它没有找到我试图从中生成 stub 的文件:
[exec] 找不到类:“rpm.patient.wsimpl.RpmPatientInterfaceImpl”
[exec] 用法:WSGEN [选项]

任何可以帮助我的提示?

最佳答案

我正在为一个遗留系统而苦苦挣扎,我也不知道如何生成 WSDL。它包含 maven 库,我必须将它们一一包含在 -cp 中。论点,我不能使用像 java -cp lib/* 这样的通配符命令,不知道为什么。无论如何,希望以下有所帮助:

D:\MyData\Software\JavaJDK\bin\wsgen -verbose -keep -cp "spring-tx-4.0.2.RELEASE.jar;spring-web-4.0.2.RELEASE.jar;D:/my-xxx-project/target/classes" com.xxx.ws.webservice.xxxImpl -wsdl



我正在 target/lib 中执行此操作路径,包含所有的 Maven jar。 D:/my-xxx-project/target/classes包含所有 Java 类。

对于您的情况,您只需要在以下位置添加多个 jars 文件路径(与 ; 分开):

<property name="wsgen_cp" value="./build/classes/" />

关于web-services - 如何在 wsgen 类路径中引用 *.jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com