问题描述
问题
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 (将#修改为@)