开发JAX-WS Web服务客户端会遇到错误

时间:2013-11-27 22:22:56

标签: java web-services struts2 wsdl jax-ws

我正在关注Netbean的tutorial和eclipse教程,以便从此wsdl生成代码,但在netbeans中会遇到以下错误

"Two declarations cause a collision in the ObjectFactory class". 

在Eclipse中,它会遇到以下错误。

"WAB0399E Error in generating Java from WSDL:  java.io.IOException: Emitter failure.  There is an undefined portType (I3Service) in the WSDL document http://i3-cert.vueling.com/Vueling.I3.WCF.WebService/I3Service.svc?wsdl=wsdl0.
Hint: make sure <binding type=".."> is fully qualified."

我该怎么办?

2 个答案:

答案 0 :(得分:4)

JAX-WS使用JAXB从WSDL生成工件,如果在模式中使用相同名称定义了两个或更多类型,则JAXB无法在同一个包中为该类型生成两次(碰撞)工件。您可以使用JAXB绑定文件解决问题,通过这种方式,JAXB可以将工件生成到不同的包中以用于重复类型,但需要时间来检测这些类型和一些详细配置。检查Oracle wsimport工具并尝试使用--verbose选项获取WSDL的工件以跟踪并获取冲突类型,查看http://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html,wsimport也可用于javase 6。 WSDL没有很好地定义,尝试用一些验证工具解析它,如xmlspy或simillar并检查结果。

答案 1 :(得分:0)

可能存在许多问题,例如当我在soap:address指定的位置为空时,我遇到了同样的问题。

您需要发布您的xml以帮助我们解决问题。

请查看wsdl及其规范。