每当我尝试从wsdl url创建Web服务时,我会在Netbeans IDE中获得一个错误窗口。没有这样的包裹或参考的地方。
这是我的堆栈跟踪。
parsing WSDL...
[ERROR]已使用具有相同名称“org.wi.link.action.Exception”的类/接口。使用类自定义来解决此冲突。 文件第35行:/ D:/Development/source/WebServiceProject/TestProject/src/conf/xml-resources/web-service-references/service/wsdl/urladdress/wionline/services/service.wsdl
[ERROR](与上述错误相关)从此处生成另一个“例外”。 文件第30行:/ D:/Development/source/WebServiceProject/TestProject/src/conf/xml-resources/web-service-references/service/wsdl/urladdress/wionline/services/service.wsdl
[ERROR]两个声明在ObjectFactory类中导致冲突。 文件第35行:/ D:/Development/source/WebServiceProject/TestProject/src/conf/xml-resources/web-service-references/service/wsdl/urladdress/wionline/services/service.wsdl
[错误](与上述错误有关)这是另一个声明 文件第30行:/ D:/Development/source/WebServiceProject/TestProject/src/conf/xml-resources/web-service-references/service/wsdl/urladdress/wionline/services/service.wsdl
[ERROR]两个声明在ObjectFactory类中导致冲突。 文件第38行:/ D:/Development/source/WebServiceProject/TestProject/src/conf/xml-resources/web-service-references/service/wsdl/urladdress/wionline/services/service.wsdl
[错误](与上述错误有关)这是另一个声明 第32行文件:/ D:/Development/source/WebServiceProject/TestProject/src/conf/xml-resources/web-service-references/service/wsdl/urladdress/wionline/services/service.wsdl
D:\ Development \ source \ WebServiceProject \ TestProject \ nbproject \ jaxws-build.xml:225:wsimport失败 BUILD FAILED(总时间:2秒)
如果需要,我也可以发布jaxws-build.xml,提前谢谢。
答案 0 :(得分:3)
引擎盖下wsimport utinilty使用JAXB编译器,因此实际错误与JAXB相关。如JAXB guide中所述,您有两种选择 - 使用模式绑定或factoryMethod自定义,但这取决于您的WSLD,并且可能无法实现。另一种选择是重命名WSDL文档中的冲突类型。
根据以下评论,我们假设这是您的架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Exception">
<xs:sequence>
<xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Exception">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="Exception" nillable="true" type="Exception"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
要生成相同的错误,您可以运行xjc编译器:
/bin/xjc.sh schema.xsd
如上所述,修复此问题的最简单方法是重命名复杂类型或元素名称。但为了使事情更有趣,您可以定义JAXB自定义
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<jaxb:bindings schemaLocation="schema.xsd">
<jaxb:bindings node="//xs:complexType[@name='Exception']">
<jaxb:factoryMethod name="TypeException"/>
<jaxb:class name="TypeException" />
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
再试一次:
/bin/xjc.sh -b binding.xml schema.xsd
可能会向wsimport实用程序提供相同的绑定:
wsimport myService.wsdl -b binding.xml
答案 1 :(得分:3)
无法使用wsdl创建Webservice,只能使用wsdl创建Web服务客户端(使用WS)。
对我来说问题解决了,我错误地添加了#34; Web服务客户端&#34;如果wsdl url不正确,我正在添加http://localhost:8080/MyService/MyService?Tester,这是ws测试人员网址。
正确的网址应该是WSDL网址,即http://localhost:8080/MyService/MyService?WSDL
遵循的步骤: 1.参加项目战 2.右键单击新建&gt; WebService客户端 3.选择WSDL URL,粘贴WSDL URL,给出包名称
它完成了:))
对我来说问题已经解决了。
您只能从头开始或从现有bean创建WS。
希望这会对你有所帮助。