wsimport - Deux déclarations provoquent une collision, même ligne donnée
En essayant d'utiliser wsimport
pour générer un client pour un SOAP. Le WSDL et tous les fichiers XSD utilisés sont des copies locales.
C'est la commande en cours d'exécution:
wsimport ./bwWsdl.xml -p com.generated -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution
Qui donne cette erreur:
[ERROR] Two declarations cause a collision in the ObjectFactory class.
line 16 of file:/schemas/newSchema.xsd
[ERROR] (Related to above error) This is the other declaration.
line 16 of file:/schemas/newSchema.xsd
Note le numéro de la ligne est la même pour les collision.
Voici le schéma:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
version="2.004" id="OTA2003A2009A">
<xs:complexType name="TPA_ExtensionsType">
<xs:annotation>
<xs:documentation xml:lang="en">Description here.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:element name="TPA_Extensions" type="TPA_ExtensionsType">
<xs:annotation>
<xs:documentation xml:lang="en">More description here.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>
J'ai essayé de la suppression de la définition de type, mais il est référencé dans la une flopée d'autres endroits.
Quelqu'un pourrait s'il vous plaît offrir tous les conseils pour savoir comment obtenir que cela fonctionne?
Grâce
Edit:
Voici les lignes où le WSDL importations de ces schémas:
<definitions name='ResLookupGet' targetNamespace='http://org.jboss.ws/resLookupGet' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:http='http://schemas.xmlsoap.org/wsdl/http/' xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/' xmlns:ns='http://www.opentravel.org/OTA/2003/05/beta' xmlns:rq='http://www.opentravel.org/OTA/2003/05/betarq' xmlns:rs='http://www.opentravel.org/OTA/2003/05/betars' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://org.jboss.ws/resLookupGet' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<types>
<xsd:schema targetNamespace='http://org.jboss.ws/resLookupGet' xmlns:tns='http://org.jboss.ws/resLookupGet' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<xsd:import namespace='http://www.opentravel.org/OTA/2003/05/betarq' schemaLocation='./schemas/FooAffiliateHeaderRQ.xsd'/>
<xsd:import namespace='http://www.opentravel.org/OTA/2003/05/betarq' schemaLocation='./schemas/FooResLookupGetRQ.xsd'/>
<xsd:import namespace='http://www.opentravel.org/OTA/2003/05/betars' schemaLocation='./schemas/FooResLookupGetRS.xsd'/>
</xsd:schema>
</types>
<message name='ResLookupGetRQ'>
<part element='rq:FooResLookupGetRQ' name='FooResLookupGetRQ'></part>
</message>
<message name='ResLookupGetRS'>
<part element='rs:FooResLookupGetRS' name='FooResLookupGetRS'></part>
</message>
source d'informationauteur Cuga
Vous devez vous connecter pour publier un commentaire.
Grâce à l'aide de @Petru Gardea, j'ai pu finalement obtenir au-delà de ce en omettant la
-p com.generated
spécification de paquetage à wsimport. C'est donc ce que j'ai a finalement été en mesure d'exécuter à obtenir au-delà de ce problème:Le raisonnement car il est
wsimport
est en essayant de générer des classes du même package avec le même nom et/ou de méthodes, dont il ne peut évidemment pas faire.Donc, en omettant l'forcé paquet déclaration,
wsimport
est en mesure de mettre les classes en ce que les paquets qu'il veut, qui s'avère être de 3 paquets différents selon les<xsd:schema>
définition dans le fichier WSDL.Merci encore @Petru!