我正在关注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."
我该怎么办?
答案 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及其规范。