gpt4 book ai didi

java - JAX-WS 和版本冲突

转载 作者:搜寻专家 更新时间:2023-11-01 01:06:57 25 4
gpt4 key购买 nike

作为测试项目,我使用 wsdl 和 jax-ws 创建了一个非常简单的 WebService。如果在 GlassFish 中将客户端部署为 Web 应用程序,则客户端运行良好,但如果我直接在 Eclipse 中启动相同的 (WebService-) 代码,则会出现以下错误:

WARNUNG: Input Action on WSDL operation AddNumbers and @Action on its associated Web Method addNumbers did not match and will cause problems in dispatching the requests
Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/ha/store/api/BackingStoreException
at com.sun.xml.ws.rx.mc.runtime.McConfigurationFactory.createInstance(McConfigurationFactory.java:66)
at com.sun.xml.ws.rx.mc.runtime.McTubeFactory.createTube(McTubeFactory.java:68)
at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84)
at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130)
at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228)
at com.sun.xml.ws.client.Stub.<init>(Stub.java:205)
at com.sun.xml.ws.client.Stub.<init>(Stub.java:178)
at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85)
at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312)
at javax.xml.ws.Service.getPort(Service.java:134)
at mnm.namedesdienstes.webservice.service.NameDesDienstesService.getNameDesDienstesPortTypePort(NameDesDienstesService.java:56)
at webserviceClient.NameDesDienstesClient.myTest(NameDesDienstesClient.java:12)
at webserviceClient.NameDesDienstesClient.main(NameDesDienstesClient.java:25)
Caused by: java.lang.ClassNotFoundException: org.glassfish.ha.store.api.BackingStoreException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 16 more

经过一番研究,我发现这一定与某些库文件的不同版本有关。所以现在我的问题是,如何“修复”我的 eclipse java 执行以正确运行我的 web 服务客户端?我发现了一些将一些 jar 复制到认可目录的技巧,但是哪些 jar 复制到哪个目录 :-)

我使用的是 Max OS 10.6.8,Eclipse 项目使用的是 JVM 1.6。我的 Mac Java 版本是

xmacbook:~ cstraube$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)

更新:我的第一次尝试(感谢来自 remipod 的链接)我执行了以下步骤:

  1. 使用 System.out.println(System.getProperty("java.endorsed.dirs")); 获取认可库目录
  2. 接下来,我将 JAXWS2.1.7-20090419.jar 和 JAXB2_20080513.jar(均为 2.1.7 版本)这两个文件复制到此目录
  3. 不幸的是,我仍然遇到同样的错误

最佳答案

在 tomcat 7 中部署 Web 服务 (JAX-WS) 时,我遇到了与您类似的问题。可以在 ha-api.jar 中找到缺少的类定义。


组织/glassfish/ha/store/api/BackingStoreException

您应该将 ha-api.jar(来自 JAX-WS 发行版)添加到服务器库中。对于我的情况,eclipse 运行 tomcat 7,所以位置是 (Tomcat 7.0\lib)。

关于java - JAX-WS 和版本冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7580803/

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