ciao a tutti,
sto provando a generare classi e client a partire da un wsdl, ma ho dei problemi con i namespace nello specifico:
Maven plug-in:
codice:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.5.4</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/WSDL</wsdl>
<extraargs>
<extraarg>-fe</extraarg>
<extraarg>jaxws21</extraarg>
<extraarg>-b</extraarg>
<extraarg>${basedir}/src/main/resources/wsdl/binding.xml</extraarg>
<extraarg>-exsh</extraarg>
<extraarg>true</extraarg>
<extraarg>-validate</extraarg>
<extraarg>-autoNameResolution</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>my.packeage</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-bindings-soap</artifactId>
<version>2.5.4</version>
</dependency>
</dependencies>
</plugin>
Binding file:
codice:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<jaxb:bindings schemaLocation="xsd0.xml" node="/xs:schema">
<jaxb:globalBindings>
<xjc:generateElementProperty>false</xjc:generateElementProperty>
</jaxb:globalBindings>
</jaxb:bindings>
</jaxb:bindings>
Il problema sta nel fatto che vengono impotati degli xsd che non hanno lo stesso namespace del wsdl (http://schemas.navitaire.com/WebServices)
codice:
...
<xsd:import schemaLocation="xsd0.xml" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
...
Qualcuno sa come risolvere questo problema senza modificare il WSDL?
grazie