I didn't find any documentation about this. i did the modifications by myself and described them in this thread.
-------- Original-Nachricht -------- Datum: Fri, 22 Jun 2007 08:57:12 -0400 Von: "Bill Taylor" <[EMAIL PROTECTED]> An: axis-user@ws.apache.org, [EMAIL PROTECTED] Betreff: Re: [Axis2] wsdl2java code generation errors with jaxb and soap header > Can you tell me where you found the documentation on how to modify the > generated Java code? I am having trouble figuring out how the generated > Java code works. Thanks. > > Bill Taylor > > On 6/21/07, andreas netter <[EMAIL PROTECTED]> wrote: > > > > Hi, > > has nobody a comment on this? > > i think it is no good idea to fix errors in the generated code manually. > > > > greets, > > andi > > > > [EMAIL PROTECTED] schrieb: > > > Hello, > > > > > > I generate client code out of a wsdl with axis2 (v. 1.2) wsdl2java and > > jaxbri(v. 2.0.2) databinding. > > > the wsdl not only defines request and reply messages but also the > header > > element of the soap message. > > > > > > i have the following problems with the generated code: > > > 1) The generated code for the client stub doesn't compile because of a > > parameter error in the "toOM"-Method for the Header. > > > 2) When i fix the error, the invocation of "toOM" fails because of > > incorrect/ missing values when creating the OMElement for the Header > > > 3) When i fix this error too by filling in the correct values for the > > HeaderType, the client code works. > > > > > > I think the wsdl is correct because generated code with adb binding > out > > of this wsdl works fine. > > > > > > It seems that axis2 code generation doesn't generate correct code with > > jaxb binding when you have defined a soap header in the wsdl. > > > Does someone have a similiar problem (or fixed it)? > > > > > > greetings from sunny munich :) > > > andi > > > > > > some code snippets from the generated stub: > > > > > > "toOM"-Method call. "mMS150_Display0" represents the request data > type, > > "mws1" the header data type. > > > 1)------------------------------------------ > > > **snip** > > > env = toEnvelope(getFactory( > > > _operationClient.getOptions().getSoapVersionURI()), > > > mMS150_Display0, > > > optimizeContent(new javax.xml.namespace.QName("", > > "MMS150_Display"))); > > > env.build(); > > > // add the children only if the parameter is not null > > > if (mws1!=null){ > > > env.getHeader().addChild( > > > toOM(mws1, optimizeContent(new > javax.xml.namespace.QName("", > > "MMS150_Display")))); > > > } > > > **snap** > > > > > > "toOM"-Method for the header: > > > 2)------------------------------------------ > > > **snip** > > > private org.apache.axiom.om.OMElement toOM( > > net.company.mws.mws2.HeaderType param, > org.apache.axiom.soap.SOAPFactoryfactory, boolean optimizeContent) { > > > try { > > > javax.xml.bind.JAXBContext context = > > net_company_mws_mws2_HeaderType; > > > javax.xml.bind.Marshaller marshaller = > context.createMarshaller > > (); > > > > marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FRAGMENT, > > Boolean.TRUE); > > > > > > JaxbRIDataSource source = new JaxbRIDataSource( > > net.company.mws.mws2.HeaderType.class, > > > param, > > > marshaller, > > > "", > > > ""); > > > org.apache.axiom.om.OMNamespace namespace = > > factory.createOMNamespace("", > > > null); > > > return factory.createOMElement(source, "", namespace); > > > } catch (javax.xml.bind.JAXBException bex){ > > > throw new RuntimeException(bex); > > > } > > > } > > > > > > **snap** > > > > > > the call of the "toOM"-Method (with Parameters HeaderType, boolean) > > doesn't fit with the signature of the toOm-Method (HeaderType, > SOAPFactory, > > boolean) > > > i can correct this error by adding > > "getFactory(_operationClient.getOptions().getSoapVersionURI())" to the > > toOM-Method call in the generated stub. > > > then i run into the second error i mentioned above. > > > > > > The following code snippet shows the correct values for in the > > "toOM"-Method: > > > 3)------------------------------------------ > > > **snip** > > > JaxbRIDataSource source = new JaxbRIDataSource( > > net.company.mws.mws2.HeaderType.class, > > > param, > > > marshaller, > > > " > > http://mws.company.net/mws2", > > > "mws"); > > > org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace > > ("", > > > null); > > > return factory.createOMElement(source, "mws", namespace); > > > **snap** > > > > > > the wsdl: > > > ------------------------------------------ > > > **snip** > > > <?xml version="1.0" encoding="UTF-8"?> > > > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > > > xmlns:mws="http://mws.company.net/mws2" > > > xmlns:tns="http://schemas.company.com/KKTEST2" > > > xmlns:mms150_display=" > > http://schemas.company.com/KKTEST2/MMS150_Display" > > > name="KKTEST2" > targetNamespace="http://schemas.company.com/KKTEST2 > > "> > > > <wsdl:types> > > > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > targetNamespace="http://schemas.company.com/KKTEST2/MMS150_Display" > > elementFormDefault="qualified"> > > > <xsd:element name="MMS150_Display" > > type="mms150_display:MMS150_DisplayType" /> > > > <xsd:complexType name="MMS150_DisplayType"> > > > <xsd:sequence> > > > <xsd:element name="MMS150" type="mms150_display:ct_0" /> > > > </xsd:sequence> > > > </xsd:complexType> > > > <xsd:complexType name="ct_0"> > > > <xsd:sequence> > > > <xsd:element name="User" nillable="true" maxOccurs="1" > > minOccurs="0"> > > > <xsd:simpleType> > > > <xsd:restriction base="xsd:string"> > > > <xsd:maxLength value="10" /> > > > </xsd:restriction> > > > </xsd:simpleType> > > > </xsd:element> > > > </xsd:sequence> > > > </xsd:complexType> > > > <xsd:element name="MMS150_DisplayResponse" > > type="mms150_display:MMS150_DisplayResponseType" /> > > > <xsd:complexType name="MMS150_DisplayResponseType"> > > > <xsd:sequence> > > > <xsd:element name="MMS150" type="mms150_display:ct_1" /> > > > </xsd:sequence> > > > </xsd:complexType> > > > <xsd:complexType name="ct_1"> > > > <xsd:sequence> > > > <xsd:element name="Description"> > > > <xsd:simpleType> > > > <xsd:restriction base="xsd:string"> > > > <xsd:maxLength value="40" /> > > > </xsd:restriction> > > > </xsd:simpleType> > > > </xsd:element> > > > </xsd:sequence> > > > </xsd:complexType> > > > </xsd:schema> > > > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > xmlns:tns="http://mws.company.net/mws2" > > > targetNamespace="http://mws.company.net/mws2" > > elementFormDefault="qualified"> > > > <xsd:element name="mws" type="tns:headerType" /> > > > <xsd:complexType name="headerType"> > > > <xsd:sequence> > > > <xsd:element name="user" type="xsd:string" /> > > > <xsd:element name="password" type="xsd:string" /> > > > <xsd:element name="company" type="xsd:integer" > nillable="true" > > /> > > > <xsd:element name="division" type="xsd:string" > nillable="true" > > /> > > > </xsd:sequence> > > > </xsd:complexType> > > > </xsd:schema> > > > </wsdl:types> > > > <wsdl:message name="MMS150_Display"> > > > <wsdl:part element="mms150_display:MMS150_Display" > > name="MMS150_Display" /> > > > </wsdl:message> > > > <wsdl:message name="MMS150_DisplayResponse"> > > > <wsdl:part element="mms150_display:MMS150_DisplayResponse" > > name="MMS150_DisplayResponse" /> > > > </wsdl:message> > > > <wsdl:message name="MwsHeader001"> > > > <wsdl:part element="mws:mws" name="MwsHeader" /> > > > </wsdl:message> > > > <wsdl:portType name="KKTEST2"> > > > <wsdl:operation name="MMS150_Display"> > > > <wsdl:input message="tns:MMS150_Display" /> > > > <wsdl:output message="tns:MMS150_DisplayResponse" /> > > > </wsdl:operation> > > > </wsdl:portType> > > > <wsdl:binding name="KKTEST2SoapBinding" type="tns:KKTEST2"> > > > <soap:binding style="document" transport=" > > http://schemas.xmlsoap.org/soap/http" /> > > > <wsdl:operation name="MMS150_Display"> > > > <soap:operation soapAction="MMS150_Display" /> > > > <wsdl:input> > > > <soap:body use="literal" parts="MMS150_Display" /> > > > <soap:header use="literal" part="MwsHeader" > > message="tns:MwsHeader001" /> > > > </wsdl:input> > > > <wsdl:output> > > > <soap:body use="literal" /> > > > </wsdl:output> > > > </wsdl:operation> > > > </wsdl:binding> > > > <wsdl:service name="KKTEST2"> > > > <wsdl:port name="KKTEST2Port" binding="tns:KKTEST2SoapBinding"> > > > <soap:address location="http://host:port/ws/services/KKTEST2" /> > > > </wsdl:port> > > > </wsdl:service> > > > </wsdl:definitions> > > > **snap** > > > > > > > -- > > GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS. > > Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kanns mit allen: http://www.gmx.net/de/go/multimessenger --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]