java - JDK8:“java.lang.NoClassDefFoundError:javax/xml/ws/Service”
问题描述
Webservices 相当新,已经使用 JAX-WS RI(wsimport 工具)进行了一些研究并为第三方 WSDL 生成了客户端存根。正在使用 JDK 8。使用生成的存根,编写 Web 服务客户端以调用 WSDL 操作。Maven 构建成功,但在测试时,得到“java.lang.NoClassDefFoundError: javax/xml/ws/Service”。
这是Web 服务客户端。也尝试为 NoClassDefFoundError 引用许多资源,但实际上没有任何效果。虽然调试理解它在下面的第 11 行失败。如何解决这个 NoClassDefFoundError,请帮助?
line-11: ServiceWS service = new ServiceWS(); //@WebServiceClient
line-12: ServiceWSSoap stubWS = service.getServiceWSSoap(); //where ServiceWSSoap is @WebService and getServiceWSSoap() is @WebEndpoint
这是堆栈跟踪
java.lang.NoClassDefFoundError: javax/xml/ws/Service
at package1.ProjectClient.getStub(ProjectClient.java:11)
at package.Project.<init>(Project.java:55)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.base/java.lang.Class.newInstance(Unknown Source)
at package.SubClass.getInstance(SubClass.java:1284)
at package.SubClass.getCall(SubClass.java:635)
at package.SubClass.execute(SubClass.java:317)
at package.MainClass.run(MainClass.java:1216)
at package.MainClass.execute(MainClass.java:759)
at package.ServerClass.b(ServerClass.java)
at package.ServerClass.run(ServerClass.java)
at java.base/java.lang.Thread.run(Unknown Source)
我在 pom.xml 中包含了 jaxws-api 依赖项,但仍然没有运气
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.1</version>
</dependency>
研究链接:1)Java Webservice Client(最佳方式)
2)https://mkyong.com/webservices/jax-ws/jax-ws-wsimport-tool-example/
3)https://mkyong.com/webservices/ jax-ws/jax-ws-hello-world-example/
解决方案
您只包含了 API 类。您的项目还需要一些实现类(工件)。一种可能的实现是 jaxws-ri:
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-ri</artifactId>
<version>2.3.1</version>
</dependency>
推荐阅读
- javascript - 如何在 vuejs 中渲染/显示 Quill 原始 HTML
- android - 如何以编程方式获取 BottomSheetDialogFragment 的当前高度?或者是否有不同状态的默认值?
- asp.net-core-mvc - 我在哪里可以关闭应用洞察中的请求跟踪日志
- node.js - 如何在下面的节点 js socket io 代码中添加 cors
- typescript - 打字稿 - 省略具有特定类型的道具
- rust - Arc 如何在没有额外字段的情况下访问底层对象?
- python - 从用户名discord py rewrite获取用户
- java-8 - CompletableFuture 进行多个数据库调用并获取响应
- sql - ON CONFLICT DO UPDATE 不能再次影响行,我该怎么办?
- c++ - c和c++中的字符