Thanks Dan, I relocated that part of the message to my reply object and now it behaves exactly how I want it to!
Kind regards, Eric On Nov 9, 2012, at 3:40 PM, Daniel Kulp <[email protected]> wrote: > > It's likely due to the "-exsh true" flags and the headers for the response: > >> <soap12:header use="literal" message="tns:replyHeader" >> part="result"/> > > > To be able to pass the header back to the client, the holder needs to be > generated. > > > Dan > > > > On Nov 9, 2012, at 9:12 AM, Eric Ettes <[email protected]> wrote: > >> 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 > > -- > Daniel Kulp > [email protected] - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com >
