You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Bryan Stopp <bs...@gmail.com> on 2014/08/28 02:55:54 UTC

Odd Binding Error

So i have a problem that can be resolved one of two ways:

First of all: I cannot change the WSDL for this; i am trying to create a
Mock implementation of an existing service and my client works against the
real thing but not the mock; due to the issue described below.

I'm trying to use an jaxb binding file; however whenever i use the file
with wsdl2java i get this error:

Execution generate-sources of goal
org.apache.cxf:cxf-codegen-plugin:3.0.1:wsdl2java failed:
org.apache.cxf.wsdl11.WSDLRuntimeException: No input message was found for
operation* XXXXoperation *and input named XXXXXRequest.  Check the wsdl for
errors. -> [Help 1]

However, when i use the file with xsdtojava with the cxf-xjc-plugin it
works no problem.

My binding file is ridiculously simple:

<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
    <jaxb:globalBindings generateElementProperty="false"/>
</jaxb:bindings>



The wsdl2java generates this:

    @XmlElementRef(name = "countryCodeArray", namespace = "
http://schemas.datacontract.org/2004/07/MyService.vo", type =
JAXBElement.class)
    protected JAXBElement<ArrayOfCountryCode> countryCodeArray;


But i want what the xsdtojava generages, which is this:

    @XmlElement(nillable = true)
    protected ArrayOfCountryCode countryCodeArray;


Because this is what is being returned from the JaxWS server when it runs
as a CXF Endpoint:
...
 <ArrayOfCountryCode>
               <CountryCode>
...

<ArrayOfCountryCode>
               <CountryCode>
                  <ns5:string>USA</ns5:string>


But this is what it is supposed to be:

 <countryCodeArray>
               <CountryCode>
                             <countryCode>USA</countryCode>



So here's the questions: What is wrong with my binding file (pom snippit
for wsdl2java CXF codegen plugin)

<configuration>

<sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                            <wsdlOptions>
                                <wsdlOption>

<wsdl>${basedir}/src/main/resources/countries.wsdl</wsdl>
                                    <extraargs>

<extraarg>-autoNameResolution</extraarg>
                                        <extraarg>-wsdlLocation</extraarg>
                                        <extraarg>countries.wsdl</extraarg>
                                        <extraarg>-keep</extraarg>
                                        <extraarg>-p</extraarg>

<extraarg>com.ws.countries.model</extraarg>
                                        <extraarg>-frontend</extraarg>
                                        <extraarg>jaxws21</extraarg>
                                        <extraarg>-impl</extraarg>
                                    </extraargs>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>


OR how do i use xjc generated java classes with wsdl2java in the same
project? (The wsd2java complains about missing data types if i leave out
the XSD files).


Thanks in advance for any assistance. Sorry if i rambled.

-B. Stopp