Hi,
Using the cxf-codegen-plugin seems to produce different results to
calling wsdl2java directly (particularly with regard to arguments passed
in).
Example one:
<execution>
<id>generate-service</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/wsdl/RefDataService.wsdl</wsdl>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/wsdl/RefDataServiceBinding.xml</bindingFile>
</bindingFiles>
<extraargs>
<extraarg>-server</extraarg>
<!-- Note that the next two are a pair, without them the path to the
WSDL file gets hardcoded in the Service -->
<extraarg>-wsdlLocation</extraarg>
<extraarg></extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
The binding file is supposed to generate java.util.Date for
xsd:dateTime, but the output is still using
javax.xml.datatype.XMLGregorianCalendar.
But if I run the following from a command line:
wsdl2java -b RefDataServiceBinding.xml RefDataService.wsdl
it works correctly.
Example two:
Trying to pass the --exsh argument makes no difference:
<extraarg>-exsh</extraarg>
<extraarg>true</extraarg>
This was using a .Net WCF WSDL file with a lot of parameters needing to
be passed in the SOAP:header -- without exsh the generated code is unusable.
For this one I ended up generating the code at the command line.
I've tried a few different versions of CXF, this is currently using 2.3.0.
Running with mvn -X turns up the following line (edited to remove path
root):
[DEBUG] Calling wsdl2java with args: [-d,
PATHROOT\target\generated-sources\cxf, -verbose,
file:/PATHROOT/src/main/resources/wsdl/RefDataService.wsdl]
Even the wsdlLocation argument has been lost - though there is another
execution in the same pom.xml that also has a wsdlLocation argument that
IS being passed to wsdl2java.
Does the problem relate to requirin multiple calls to wsdl2java in a
single pom?
Jim