当前位置:  开发笔记 > 编程语言 > 正文

java:JAXWS 2.0不支持Rpc/encoded wsdls

如何解决《java:JAXWS2.0不支持Rpc/encodedwsdls》经验,为你挑选了3个好方法。

我正在使用CXF 2.1从wsdl生成java代码,但是我收到以下错误:

WSDLToJava Error: Rpc/encoded wsdls are not supported in JAXWS 2.0

org.apache.cxf.tools.common.ToolException: Rpc/encoded wsdls are not supported in JAXWS 2.0
    at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.checkSupported(JAXWSDefinitionBuilder.java:141)
    at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:87)
    at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:61)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:127)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:232)
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
    at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:103)
    at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:173)

如何修复此错误,我可以使用以前版本的CXF或其他任何方法来修复它吗?



1> Chase Seiber..:

RPC/encoded是使用XML Schema定义SOAP对象之前的遗留物.它不再受到广泛支持.您需要使用来自同一时代的Apache Axis 1.0生成存根.

java org.apache.axis.wsdl.WSDL2Java http://someurl?WSDL 

您将需要-cp classpath参数中的以下jar或等效项:

轴-1.4.jar

共享记录,1.1.ja

公共发现-0.2.jar

JAXRPC-1.1.jar

SAAJ-1.1.jar

WSDL4J-1.4.jar

激活1.1.jar

邮件1.4.jar

这将生成与wsimport类似的存根.

或者,如果您不使用需要rpc/encoded的模式部分,则可以下载WSDL的副本并注释掉这些位.然后对本地文件运行wsimport.

如果查看WSDL,以下位使用rpc/encoded:



互联网上是否有针对此问题的文档?

2> Stephan..:

我使用Axis 1.4作为Chase Seibert在他的回答中提出的,尽管该答案中给出的下载链接不起作用.我使用的替代下载链接给了我不同的库.以下是我生成代码所遵循的步骤.

访问http://apache.is.co.za/axis/axis/java/1.4/并下载axis-bin-1_4.zip.

提取它,你应该有以下文件(其中包括):

axis.jar

公共发现-0.2.jar

共享记录-1.0.4.jar

没有jaxrpc.jar

没有saaj.jar

WSDL4J-1.5.1.jar

使用以下命令执行WSDL2Java(当然替换URL):

java -cp axis.jar;commons-logging-1.0.4.jar;commons-discovery-0.2.jar;jaxrpc.jar;saaj.jar;wsdl4j-1.5.1.jar org.apache.axis.wsdl.WSDL2Java http://someURL?WSDL

这将生成您的Java文件.

PS:使用Axis 1.2.1似乎同样有效.


报告缺少两个类,导致禁用附件支持.要解决此问题,请获取mail.jar和activation.jar并将其添加到命令中.
添加mailapi.jar和activation.jar为@Marco Brochet说.我使用了-classpath并替换了";" 用":".java -classpath axis.jar:commons-logging-1.0.4.jar:commons-discovery-0.2.jar:jaxrpc.jar:saaj.jar:wsdl4j-1.5.1.jar:mailapi.jar:activation.jar org. apache.axis.wsdl.WSDL2Java https://api.clickatell.com/soap/webservice.php?WSDL

3> Rites..:

可能这对CXF有帮助.Alteast它对我有用.我编辑了WSDL文件并删除了所有SOAP-ENC的引用并ArrayOfString以下面的方式创建了类型


    
      
    

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有