【发布时间】:2012-08-07 23:53:12
【问题描述】:
我必须使用 WCF Web 服务并获得 WSDL(外部,因此无法控制 WSDL)。在 WSDL 定义中,我没有找到具有服务、端口和地址元素的服务元素。 WSDL 中不存在这种正常情况吗?这对于 WCF WSDL 来说很常见吗?我正在尝试使用轴为此生成存根并且遇到问题。
<wsdl:definitions>
....
...
..
**<wsdl:service>
<wsdl:port>
<wsdl1:address/>
</wsdl:port>
</wsdl:service>**
</wsdl:definitions>
星号之间的部分是 WSDL 中缺少的部分。
有人遇到过这样的问题吗?请告诉我。
生成存根时,我收到此错误: 线程“主”org.apache.axis2.wsdl.codegen.CodeGenerationException 中的异常:解析 WSDL 时出错 在 org.apache.axis2.wsdl.codegen.CodeGenerationEngine.(CodeGenerationEngine.java:175) 在 org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) 在 org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) 原因:org.apache.axis2.AxisFault:在文件中的 WSDL 中找不到服务:/c:/work/xxx.wsdl,目标名称空间为http://tempuri.org/ 在 org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateAllServices(WSDL11ToAllAxisServicesBuilder.java:115) 在 org.apache.axis2.wsdl.codegen.CodeGenerationEngine.(CodeGenerationEngine.java:169) ... 2 更多
我查看了代码 WSDL11ToAllAxisServicesBuilder.java,如果轴没有找到服务元素,则会出现此错误。
有没有人可以解决这个问题?
【问题讨论】:
-
尝试使用像Web Service Explorer这样的网络服务测试工具。如果此工具可以解析 WSDL 并让您对其进行测试(我认为),那么请尝试使用其他工具,例如 JBoss WS 或 NetBeans。
-
我使用了 SOAPUI 并且服务测试正常。与我使用的其他 WSDL 不同,当我导入 SOAPUI 时,它不会自动设置端点,因为它丢失了。我添加了 .svc 端点,它测试良好。我不确定为什么 WSDL 没有定义服务元素并导致存根不生成。服务元素不是强制性的吗?
标签: java web-services