2012-08-07 83 views
4

我必须使用WCF Web服务并获得WSDL(外部,因此无法控制WSDL)。在WSDL定义中,我没有找到具有服务,端口和地址元素的服务元素。这是否正常不在WSDL中?这对于WCF WSDL常见吗?我正在尝试为这个使用轴生成存根,并且遇到问题。wsdl没有服务元素

<wsdl:definitions> 
.... 
... 
.. 

**<wsdl:service> 
     <wsdl:port> 
     <wsdl1:address/> 
     </wsdl:port> 
    </wsdl:service>** 

</wsdl:definitions> 

星号之间的部分是WSDL中缺少的部分。

有人有这样的问题吗?请告诉我。在org.apache.axis2.wsdl.codegen.CodeGenerationEngine错误解析WSDL :

当生成存根,我收到此错误: 异常线程“main” org.apache.axis2.wsdl.codegen.CodeGenerationException。 (CodeGenerationEngine.java:175) at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) 由:org.apache.axis2.AxisFault:WSDL中找不到服务,位于文件:/ c:/work/xxx.wsdl,目标名空间为http://tempuri.org/ at org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateAllServices(WSDL11ToAllAxisServicesBuilder.java:115) at org.apache.axis2.ws dl.codegen.CodeGenerationEngine(CodeGenerationEngine.java:169) ... 2个

我看着代码WSDL11ToAllAxisServicesBuilder.java,它看起来就像如果轴没有找到一个服务元素出现此错误。

有没有人有一个解决的办法?

+0

尝试使用Web服务测试工具,如[Web服务资源管理器](http://www.eclipse.org/webtools/jst/components/ws/1.0/tutorials/WebServiceExplorer/WebServiceExplorer.html)。如果这个工具可以解析WSDL并让你测试它(如我所想),然后尝试使用不同的工具,如JBoss WS或NetBeans。 – 2012-08-08 05:09:55

+0

我用SOAPUI和服务测试没关系。与我使用的其他WSDL不同,当我导入SOAPUI时,它不会自动设置端点,因为它缺失。我添加.svc端点并且测试正常。我不确定为什么WSDL没有定义服务元素并导致存根不生成。服务元素不是强制性的吗? – user1583261 2012-08-08 12:48:11

回答

2

我发现为什么这个WSDL缺少服务标签,原来的WSDL提供了一个具有服务元素的导入。我不知道这是否是一种正确的方法,但终端向我提供的消息没有,我不得不挖掘其他导入的WSDL来查看其中一个服务元素。

希望这可以帮助别人。

由于没有端点,我不能在WSDL上使用wsdl2java,但不知道如何告诉axis查看服务元素的导入WSDL。

+0

谢谢。在给出的WSDL中帮助我解决了类似的导入问题。 – icewhite 2016-02-18 10:33:39