zSy*_*sis 5 java web-services jax-ws
我想知道我是否能得到以下问题的帮助.
我试图使用jax运行以下命令来生成Web服务客户端代理:
wsimport http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Asher>wsimport http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
parsing WSDL...
[WARNING] src-resolve.4.2: Error resolving component 's:schema'. It was detected that 's:schema' is in namespace 'http:/
/www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'http://www.h
olidaywebservice.com/Holidays/HolidayService.asmx?WSDL#types?schema1'. If this is the incorrect namespace, perhaps the p
refix of 's:schema' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be ad
ded to 'http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL#types?schema1'.
line 15 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL#types?schema1
[ERROR] undefined element declaration 's:schema'
line 15 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
[ERROR] undefined element declaration 's:schema'
line 36 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
[ERROR] undefined element declaration 's:schema'
line 74 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
[ERROR] undefined element declaration 's:schema'
line 97 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
[ERROR] undefined element declaration 's:schema'
line 120 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
[ERROR] undefined element declaration 's:schema'
line 131 of http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
C:\Users\Asher>
Run Code Online (Sandbox Code Playgroud)
首先,我做错了什么?最后,如果没有办法生成代理客户端,那么有没有其他方法可以访问这个web服务及其在java中的方法.我是java的新手,所以任何帮助都将非常感激.
谢谢
dma*_*cke 11
您可以在wsimport上将XMLschema作为参数传递
wsimport -b http://www.w3.org/2001/XMLSchema.xsd http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
Run Code Online (Sandbox Code Playgroud)
架构的架构中存在潜在的名称冲突.解决方法是使用以下方法创建customization.xjb
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" version="2.0">
<globalBindings>
<xjc:simple/>
</globalBindings>
<bindings scd="~xsd:complexType">
<class name="ComplexTypeType"/>
</bindings>
<bindings scd="~xsd:simpleType">
<class name="SimpleTypeType"/>
</bindings>
<bindings scd="~xsd:group">
<class name="GroupType"/>
</bindings>
<bindings scd="~xsd:attributeGroup">
<class name="AttributeGroupType"/>
</bindings>
<bindings scd="~xsd:element">
<class name="ElementType"/>
</bindings>
<bindings scd="~xsd:attribute">
<class name="attributeType"/>
</bindings>
</bindings>
Run Code Online (Sandbox Code Playgroud)
你的终极电话会是
wsimport -b http://www.w3.org/2001/XMLSchema.xsd -b customization.xjb http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL
Run Code Online (Sandbox Code Playgroud)
您是如何创建该 WSDL 的?看来您引用了一些未在 WSDL 中导出的数据类型。
编辑
wsdl 引用一个名为 's' 的模式,但无法找到它,因为它的 URL 是
http://www.w3.org/2001/XMLSchema但应该是
http://www.w3.org/2001 /XMLSchema.xsd
更改后,现在它还抱怨http://www.27seconds.com/Holidays/也没有指向架构。您需要在 WSDL 副本中修复所有这些问题,然后使用它执行 wsimport。
我还访问了 www.holidaywebservice.com 并发现有第二个版本: http://www.holidaywebservice.com/HolidayService_v2/HolidayService2.asmx ?wsdl