che sto cercando di generare un cliente con Maven e JAXB da un file WSDL con 2 schemi all'interno e alcuni elementi con lo stesso nome di diversi schemiPersonalizzazione pacchetti Java JAXB wsimport
Quando provo ad eseguire la compilazione I 'm ottenere l'errore successivo:
Two declarations cause a collision in the ObjectFactory class.
schemi WSDL:
<wsdl:types>
<schema targetNamespace="http://ws.services" xmlns="http://www.w3.org/2001/XMLSchema">...</schema>
<schema targetNamespace="http://ws.models" xmlns="http://www.w3.org/2001/XMLSchema">...</schema>
</wsdl:types>
ho provato a cambiare titolo gli elementi che produce l'errore, ma quindi il mio client molla riceve il messaggio SOAP corretto, ma non inserisce correttamente l'oggetto risposta (tutti i suoi attributi sono nulli). Immagino che il problema potrebbe venire dal ridenominare le classi di risposta, ecco perché sto cercando di generare diversi pacchetti mantenendo il nome originale di tutte le classi.
Per fare ciò, ho scritto il file successivo, ma non so cosa sto facendo male che non funziona.
bindings.xml di file:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="2.1"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<jaxb:bindings schemaLocation="mywsdl.wsdl#types?schema1"
node="/xs:schema[@targetNamespace='http://ws.services']">
<jaxb:schemaBindings>
<jaxb:package name="package1" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="mywsdl.wsdl#types?schema2"
node="/xs:schema[@targetNamespace='http://ws.models']">
<jaxb:schemaBindings>
<jaxb:package name="package2" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
La mia parte di configurazione nel file Maven è il prossimo, nel caso in cui è utile:
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlLocation>wsdl/mywsdl.wsdl</wsdlLocation>
<wsdlDirectory>src/main/resources/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>mywsdl.wsdl</wsdlFile>
</wsdlFiles>
<bindingDirectory>src/main/resources/wsdl</bindingDirectory>
<bindingFiles>
<bindingFile>bindings.xml</bindingFile>
</bindingFiles>
<packageName>original.package</packageName>
<sourceDestDir>${basedir}/src/main/java</sourceDestDir>
</configuration>
Quando compilo con questo file attacchi , appare lo stesso errore. Quindi penso che forse non è giusto.
Trovate errori?
Grazie.
Solo un consiglio: è possibile rimuovere la sezione di configurazione "bindingFiles" del tutto se si posiziona tutti i file di legame in src/jaxws! Verranno quindi rilevati automaticamente dal plugin jaxws-maven. – headcr4sh