2011-06-02 34 views
5

Me preguntaba si podría obtener ayuda con el siguiente problema.Error al usar Jax para generar el cliente del servicio web Proxy

yo estaba tratando de ejecutar el comando a continuación utilizando JAX web para generar clientes servicio de proxy:

wsimport http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL 

pero yo estoy recibiendo el siguiente error:

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> 

En primer lugar estoy haciendo algo incorrectamente? Y, por último, si no hay forma de generar un cliente proxy, ¿hay alguna otra forma de acceder a este servicio web &? Es métodos en Java. Soy un hada nueva en Java, así que cualquier ayuda sería muy apreciada.

Gracias

Respuesta

4

¿Cómo creó que WSDL? Parece que refiere algunos tipos de datos que no se exportan en su WSDL.

EDITAR
el WSDL se refiere a un esquema denominado 's', pero esto no se puede encontrar, debido a que su URL es
http://www.w3.org/2001/XMLSchema, pero debe ser
http://www.w3.org/2001/XMLSchema.xsd

después del cambio que ahora también se queja de http://www.27seconds.com/Holidays/ que no apunta a un esquema también. Debe arreglarlos todos en su copia del WSDL y luego hacer el wsimport con él.

También me ido a www.holidaywebservice.com y encontré que hay una segunda versión en: http://www.holidaywebservice.com/HolidayService_v2/HolidayService2.asmx?wsdl

+0

no he creado el WSDL así que por desgracia no tengo ningún control sobre él. – zSynopsis

+0

editó la publicación, para responder de acuerdo con su comentario. –

10

Puede pasar XMLSCHEMA como parámetro en wsimport

wsimport -b http://www.w3.org/2001/XMLSchema.xsd http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL 

Hay posibles conflictos de nombres en el esquema de esquema. Una solución es crear customization.xjb con los siguientes

<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> 

su llamada final sería

wsimport -b http://www.w3.org/2001/XMLSchema.xsd -b customization.xjb http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL 
+0

Gracias por la sugerencia usando XMLSchema.xsd como parámetro para wsimport, lo he olvidado y resuelve mi problema de hoy :) – ThierryB

+0

Tuve el mismo problema y esto lo resolvió, ¡muchas gracias! – user1452076

Cuestiones relacionadas