如何解决Java 14客户端生成器的替代对Axis 1.4而言WSDL,支持“ RPC /编码”格式 javaws-maven-plugin cxf-codegen-plugin 第2轴
问题
Axis 1.4和JDK 14
我试图将我们的应用程序从Java 8更新到Java 14,并且这样做,我发现Axis 1.4似乎生成的客户端代码对于新版本的Java不再有效。
问题归结为在JDK 14上运行时Axis使用com.sun.net.ssl.internal.ssl.Provider
...,这引发了NoClassDefFoundError
:
Caused by: java.lang.NoClassDefFoundError: com/sun/net/ssl/internal/ssl/Provider
RPC /编码的WSDL
我要解析的WSDls是来自第三方的,不幸的是,它们是RPC/encoded
,直到现在我还不知道,它是WSDL格式的旧版,似乎不再受支持。 / p>
因此,我寻找Axis 1.4替代品的旅程-由于它本身是一个非常过时的库,因此很高兴处理旧版RPC/encoded
格式。
尝试的解决方案
寻找替换罐
我的第一个想法是研究com.sun.net.ssl.internal.ssl.Provider
是否生活在Maven Central的jar中……类似于在Java最新版本中如何将其他一些内置程序包移至外部jar中。 。我发现该软件包是作为JDK-8218932的一部分而删除的,但是我的研究不力,无法找到建议的依赖项,我可以在其中使用它。
其他WSDL到Java方法
接下来,我尝试使用我发现的其他一些WSDL到Java生成器...不幸的是,它们似乎都不支持第三方WSDL所使用的传统RPC/encoded
格式。
javaws-maven-plugin
[ERROR] "Use of SOAP Encoding is not supported.
SOAP extension element on line 46 in file:/<path>/wsdl/kas.wsdl has use="encoded" "
cxf-codegen-plugin
Execution kas of goal org.apache.cxf:cxf-codegen-plugin:3.3.7:wsdl2java failed:
Rpc/encoded wsdls are not supported with CXF
第2轴
无需费心尝试,因为它明确指出了on their website:
请注意,Axis2当前不支持rpc /编码样式。
询问第三方以更新WSDL
我计划与第三方联系,看看他们是否可以更新其WSDL ...但是,它们似乎目前是由Axis 1.3生成的,就像它们一样:
<!--WSDL created by Apache Axis version: 1.3
我不确定如何向他们确切展示他们需要做些什么,以便将他们的系统切换到更新的WSDL样式。另外,我对他们是否愿意更改并没有太大的信心,因为他们集成了多个不同的版本,这将影响他们所有其他具有集成的客户。
谢谢
任何建议将不胜感激
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。