The WSDL's not valid. When using document style, your message parts
must reference elements, not types. Make these changes and try again:
<types>
<xs:schema
targetNamespace="http://www.someco.com/eap/transactions">
<!-- define input element -->
<xs:element name="Login" type="tr:LoginRequest"/>
<xs:complexType name="LoginRequest">
<xs:attribute name="username"
type="xs:string" use="required"/>
<xs:attribute name="password"
type="xs:string" use="required"/>
</xs:complexType>
<!-- define output element -->
<xs:element name=LoginResponse type="tr:LoginResponse"/>
<xs:complexType name="LoginResponse">
<xs:attribute name="sessionId"
type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
</types>
<message name="LoginRequest">
<!-- change "type" to "element" -->
<part name="parameter" element="tr:Login"/>
</message>
<message name="LoginResponse">
<!-- change "type" to "element" -->
<part name="parameter" element="tr:LoginResponse"/>
</message>
Anne
On 7/21/05, Aaron Siri <[EMAIL PROTECTED]> wrote:
> Using axis2 0.9's WSDL2Java tool on my .wsdl file produced a
> DatabindingSupporter.java class with a bunch of duplicate methods (example,
> two toOM methods) and calls and thus won't compile. Any idea on what I'm
> doing wrong?
>
> My .wsdl file is produced below followed by the generated .java file created:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
> xmlns:tr="http://www.someco.com/eap/transactions"
> xmlns:trxsd="http://www.someco.com/eap/transactions.xsd"
> targetNamespace="http://www.someco.com/eap/transactions">
> <types>
> <xs:schema
> targetNamespace="http://www.someco.com/eap/transactions">
> <xs:complexType name="LoginRequest">
> <xs:attribute name="username"
> type="xs:string" use="required"/>
> <xs:attribute name="password"
> type="xs:string" use="required"/>
> </xs:complexType>
> <xs:complexType name="LoginResponse">
> <xs:attribute name="sessionId"
> type="xs:string" use="required"/>
> </xs:complexType>
> </xs:schema>
> </types>
> <message name="LoginRequest">
> <part name="parameter" type="tr:LoginRequest"/>
> </message>
> <message name="LoginResponse">
> <part name="parameter" type="tr:LoginResponse"/>
> </message>
> <portType name="EAPTransaction">
> <operation name="Login">
> <input name="LoginRequest"
> message="tr:LoginRequest"/>
> <output name="LoginResponse"
> message="tr:LoginResponse"/>
> </operation>
> </portType>
> <binding name="TransactionBinding" type="tr:EAPTransaction">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="Login">
> <soap:operation soapAction="urn:#Login"/>
> <input>
> <soap:body use="literal"/>
> </input>
> <output>
> <soap:body use="literal"/>
> </output>
> </operation>
> </binding>
> <service name="EAPTransactions">
> <port name="Transaction" binding="tr:TransactionBinding">
> <soap:address location="No Target Adress"/>
> </port>
> </service>
> </definitions>
>
>
>
>
> Generated code:
>
>
> package com.efi.eap.server.transactions.databinding;
>
> /**
> * Auto generated supporter class for XML beans by the Axis code
> generator
> */
>
> public class LoginDatabindingSupporter {
>
>
> public static org.apache.axis2.om.OMElement
> toOM(org.apache.axis2.om.OMElement param){
> org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
> builder =
> org.apache.axis2.om.impl.llom.factory.OMXMLBuilderFactory.createStAXOMBuilder
> (org.apache.axis2.om.OMAbstractFactory.getOMFactory(),new
> org.apache.axis2.clientapi.StreamWrapper(param.newXMLStreamReader())) ;
> org.apache.axis2.om.OMElement documentElement =
> builder.getDocumentElement();
> //Building the element is needed to avoid certain stream errors!
> documentElement.build();
> return documentElement;
> }
>
>
> public static org.apache.axis2.om.OMElement
> toOM(org.apache.axis2.om.OMElement param){
> org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
> builder =
> org.apache.axis2.om.impl.llom.factory.OMXMLBuilderFactory.createStAXOMBuilder
> (org.apache.axis2.om.OMAbstractFactory.getOMFactory(),new
> org.apache.axis2.clientapi.StreamWrapper(param.newXMLStreamReader())) ;
> org.apache.axis2.om.OMElement documentElement =
> builder.getDocumentElement();
> //Building the element is needed to avoid certain stream errors!
> documentElement.build();
> return documentElement;
> }
>
>
>
> public static org.apache.xmlbeans.XmlObject
> fromOM(org.apache.axis2.om.OMElement param,
> java.lang.Class type){
> try{
>
> if (org.apache.axis2.om.OMElement.class.equals(type)){
> return
> org.apache.axis2.om.OMElement.Factory.parse(param.getXMLStreamReader()) ;
> }
>
> if (org.apache.axis2.om.OMElement.class.equals(type)){
> return
> org.apache.axis2.om.OMElement.Factory.parse(param.getXMLStreamReader()) ;
> }
>
> }catch(java.lang.Exception e){
> throw new RuntimeException("Data binding error",e);
> }
> return null;
> }
>
> //Generates an empty object for testing
> // Caution - need some manual editing to work properly
> public static org.apache.xmlbeans.XmlObject
> getTestObject(java.lang.Class type){
> try{
>
> if (org.apache.axis2.om.OMElement.class.equals(type)){
> org.apache.axis2.om.OMElement emptyObject=
> org.apache.axis2.om.OMElement.Factory.newInstance();
> ////////////////////////////////////////////////
> // TODO
> // Fill in the empty object with necessaey values.
> Empty XMLBeans objects do not generate proper events
> ////////////////////////////////////////////////
> return emptyObject;
> }
>
> if (org.apache.axis2.om.OMElement.class.equals(type)){
> org.apache.axis2.om.OMElement emptyObject=
> org.apache.axis2.om.OMElement.Factory.newInstance();
> ////////////////////////////////////////////////
> // TODO
> // Fill in the empty object with necessaey values.
> Empty XMLBeans objects do not generate proper events
> ////////////////////////////////////////////////
> return emptyObject;
> }
>
> }catch(java.lang.Exception e){
> throw new RuntimeException("Test object creation
> failure",e);
> }
> return null;
> }
> }
>
>
>
>