Dear all,

I'm currently building a Java application with CXF, and it worked, until I 
received a new set of WSDL's.

When generating new classes from said WSDL's, my reply methods get an extra 
parameter 'result':


    @WebResult(name = "rebootReply", targetNamespace = 
"urn://blueMeasure/box/1/0/", partName = "parameters")
    @Action(input = "/reboot")
    @WebMethod(action = "/reboot")
    public RebootReply reboot(
        @WebParam(partName = "parameters", name = "rebootRequest", 
targetNamespace = "urn://blueMeasure/box/1/0/")
        RebootRequest parameters,
        @WebParam(partName = "identity", name = "identity", targetNamespace = 
"urn://blueMeasure/box/1/0/", header = true)
        java.lang.String identity,
        @WebParam(partName = "result", mode = WebParam.Mode.OUT, name = 
"result", targetNamespace = "urn://blueMeasure/box/1/0/", header = true)
        javax.xml.ws.Holder<Result> result
    );


I've been reading about people using .net with the exact same problem, only 
opposite. I've tried adding extraargs to my wsdl2java, but that didn't work, so 
maybe I'm missing something. I'll paste a snippet from the wsdl (only using the 
reboot part), and my wsdl2java section, perhaps there is something wrong with 
the wsdl?

WSDL:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
                  xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
                  xmlns:s="http://www.w3.org/2001/XMLSchema";
                           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
                  xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
                  xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";
                  
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
                  xmlns:jaxws="http://java.sun.com/xml/ns/jaxws";
                  xmlns:tns="urn://blueMeasure/box/1/0/"
                  targetNamespace="urn://blueMeasure/box/1/0/">

        <wsp:Policy wsu:Id="ServicePolicy">
        <wsp:ExactlyOne>
                <wsp:All>
                </wsp:All>
        </wsp:ExactlyOne>
        </wsp:Policy>
                    
    <wsdl:types>
        <s:schema targetNamespace="urn://blueMeasure/box/1/0/">

                        <s:simpleType name="rebootType">
                                <s:restriction base="s:string">
                                        <s:enumeration value="soft"/>
                                        <s:enumeration value="hard"/>
                                </s:restriction>
                        </s:simpleType>

              <s:complexType name="rebootRequest">
                <s:sequence>
                                <s:element name="type" type="tns:rebootType" 
minOccurs="1" maxOccurs="1" />
                </s:sequence>
              </s:complexType>

              <s:complexType name="rebootReply">
                <s:sequence>
                </s:sequence>
              </s:complexType>

              <s:element name="rebootRequest"           
type="tns:rebootRequest" />
              <s:element name="rebootReply"             type="tns:rebootReply" 
/>
        
        </s:schema>
        </wsdl:types>

        <wsdl:message name="rebootInput">
                <wsdl:part name="parameters" element="tns:rebootRequest" />
        </wsdl:message>

        <wsdl:message name="rebootOutput">
                <wsdl:part name="parameters" element="tns:rebootReply" />
        </wsdl:message>

        <wsdl:portType name="blueMeasure2box">

     <wsdl:operation name="reboot">
       <wsdl:input message="tns:rebootInput" wsaw:Action="/reboot" />
       <wsdl:output message="tns:rebootOutput" />
     </wsdl:operation>

        </wsdl:portType>

     <wsdl:binding name="blueMeasure2boxService" type="tns:blueMeasure2box">
     <wsp:PolicyReference URI="#ServicePolicy" />
     <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; />
        
      <wsdl:operation name="reboot">
        <soap12:operation soapAction="/reboot" style="document" />
        <wsdl:input>
          <soap12:header use="literal" message="tns:requestHeader" 
part="identity"/>
          <soap12:body use="literal" />
        </wsdl:input>
        <wsdl:output>
          <soap12:header use="literal" message="tns:replyHeader" part="result"/>
          <soap12:body use="literal" />
        </wsdl:output>
      </wsdl:operation>
        
        </wsdl:binding>

  <wsdl:service name="blueMeasure2box">
    <wsdl:port name="blueMeasure2box10" binding="tns:blueMeasure2boxService">
      <soap12:address 
location="http://localhost/blueMeasure/blueMeasure2box10/"; />
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

pom.xml / build:
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>${cxf.version}</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <wsdlOptions>
                                <wsdlOption>
                                    
<wsdl>${basedir}/src/main/resources/wsdl/blueMeasure2box.wsdl</wsdl>
                                    
<wsdlLocation>classpath:wsdl/blueMeasure2box.wsdl</wsdlLocation>
                                    <packagenames>
                                        
<packagename>ohmp.bluemeasure2box</packagename>
                                    </packagenames>
                                    <extraargs>
                                        <extraarg>-verbose</extraarg>
                                        <extraarg>-exsh</extraarg>
                                        <extraarg>true</extraarg>
                                        <extraarg>-bareMethods=reboot</extraarg>
                                    </extraargs>
                                </wsdlOption>
                                <wsdlOption>
                                    
<wsdl>${basedir}/src/main/resources/wsdl/blueMeasure2master.wsdl</wsdl>
                                    
<wsdlLocation>classpath:wsdl/blueMeasure2master.wsdl</wsdlLocation>
                                    <packagenames>
                                        
<packagename>ohmp.bluemeasure2master</packagename>
                                    </packagenames>
                                    <extraargs>
                                        <extraarg>-client</extraarg>
                                        <extraarg>-exsh</extraarg>
                                        <extraarg>true</extraarg>
                                    </extraargs>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

As you can see, I still have the -bareMethods=reboot as an extraArg, hoping 
that the reboot method would lack the Holder but that didn't work :-(

Kind regards,
Eric

Reply via email to