This is a problem in the way Axis 1.4 generates faults when using RPC
style. I suggest you use "wrapped" style.

Anne

On 1/29/07, WANG Chi <[EMAIL PROTECTED]> wrote:



Hi anne,

Thanks very much for your response. I'm a newbie of JAX-WS, I have changed
from rpc/encoding to rpc/literal, but still some errors, can you help me to
solve it. thanks very much. here is what I did,

I write an interface LogonManager:

public interface LogonManager {

        public String logon(String username, String password) throws
DeniedAccessFault, ExpiredAccountFault, ServiceBreakDownFault;


        public boolean logout(String sessionId);

        public CategoryBean[] getAccessRights(String sessionId, String[]
categoryNames) throws DeniedAccessFault, ServiceBreakDownFault;

}

public class CategoryBean implements Serializable {


        private String name;


        private boolean granted;


        public boolean isGranted() {
                return granted;
        }


        public void setGranted(boolean granted) {
                this.granted = granted;
        }


        public String getName() {
                return name;
        }


        public void setName(String name) {
                this.name = name;
        }

}

then I use JAVA2WSDL to generate the WSDL, here is the ant target
<axis-java2wsdl typemappingversion="1.2" style="RPC"
classname="com.gemplus.ota.soap.logon.LogonManager"
location="${logon-url}" bindingname="LogonManagerSoapBinding"
namespace="urn:logon.soap.ota.gemplus.com"
output="${wsdl.dir}/logonmanager.wsdl" use="LITERAL">

                                <classpath refid="wsdl.classpath" />
</axis-java2wsdl>

in the above config, I use RPC/LITERAL

then I use the WSDL2JAVA to generate the server impl

<axis-wsdl2java typemappingversion="1.2" serverside="true"
url="${wsdl.dir}/logonmanager.wsdl" deployscope="Application"
skeletondeploy="true" output="${sources.dir}">

                                <mapping
namespace="urn:logon.soap.ota.gemplus.com"
package="com.gemplus.ota.soap.logon" />

</axis-wsdl2java>

then I deployed this service on Tomcat, and use wsimport to generate the
stubs, but still some errors

D:\test\jaxws-ri\bin>wsimport -extension
http://localhost:8081/otasoap/services/LogonManager?wsdl

warning: src-resolve: Cannot resolve the name 'tns2:CategoryBean' to a(n)
'type definition' component.
  line ? of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema2

error: in message "ServiceBreakDownFault", part "fault" must specify a
"element" attribute



The following is the generated WSDL,


<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:logon.soap.ota.gemplus.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="urn:logon.soap.ota.gemplus.com"
xmlns:intf="urn:logon.soap.ota.gemplus.com"
xmlns:tns1="http://soap.ota.gemplus.com";
xmlns:tns2="http://bean.soap.ota.gemplus.com";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
 <wsdl:types>
  <schema targetNamespace="http://soap.ota.gemplus.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://bean.soap.ota.gemplus.com"/>
   <import namespace="urn:logon.soap.ota.gemplus.com"/>
   <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="SoapFault">
    <sequence>
     <element name="errorCode" nillable="true" type="xsd:string"/>
     <element name="errorMessage" nillable="true" type="xsd:string"/>

    </sequence>
   </complexType>
   <complexType name="ServiceBreakDownFault">
    <complexContent>
     <extension base="tns1:SoapFault">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="DeniedAccessFault">
    <complexContent>
     <extension base="tns1:SoapFault">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="ExpiredAccountFault">
    <complexContent>
     <extension base="tns1:SoapFault">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
  </schema>
  <schema targetNamespace="urn:logon.soap.ota.gemplus.com"
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://soap.ota.gemplus.com"/>
   <import namespace="http://bean.soap.ota.gemplus.com"/>
   <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="ArrayOf_xsd_string">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item"
type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_CategoryBean">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item"
type="tns2:CategoryBean"/>
    </sequence>
   </complexType>
  </schema>
  <schema
targetNamespace="http://bean.soap.ota.gemplus.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://soap.ota.gemplus.com"/>
   <import namespace="urn:logon.soap.ota.gemplus.com"/>
   <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="CategoryBean">
    <sequence>
     <element name="granted" type="xsd:boolean"/>
     <element name="name" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>



   <wsdl:message name="getAccessRightsResponse">

      <wsdl:part name="getAccessRightsReturn"
type="impl:ArrayOf_tns2_CategoryBean"/>

   </wsdl:message>

   <wsdl:message name="logoutResponse">

      <wsdl:part name="logoutReturn" type="xsd:boolean"/>

   </wsdl:message>

   <wsdl:message name="getAccessRightsRequest">

      <wsdl:part name="in0" type="xsd:string"/>

      <wsdl:part name="in1"
type="impl:ArrayOf_xsd_string"/>

   </wsdl:message>

   <wsdl:message name="DeniedAccessFault">

      <wsdl:part name="fault" type="tns1:DeniedAccessFault"/>

   </wsdl:message>

   <wsdl:message name="logonRequest">

      <wsdl:part name="in0" type="xsd:string"/>

      <wsdl:part name="in1" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="ExpiredAccountFault">

      <wsdl:part name="fault"
type="tns1:ExpiredAccountFault"/>

   </wsdl:message>

   <wsdl:message name="logonResponse">

      <wsdl:part name="logonReturn" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="ServiceBreakDownFault">

      <wsdl:part name="fault"
type="tns1:ServiceBreakDownFault"/>

   </wsdl:message>

   <wsdl:message name="logoutRequest">

      <wsdl:part name="in0" type="xsd:string"/>


   </wsdl:message>

   <wsdl:portType name="LogonManager">

      <wsdl:operation name="logout" parameterOrder="in0">

         <wsdl:input message="impl:logoutRequest" name="logoutRequest"/>

         <wsdl:output message="impl:logoutResponse" name="logoutResponse"/>

      </wsdl:operation>

      <wsdl:operation name="logon" parameterOrder="in0 in1">

         <wsdl:input message="impl:logonRequest" name="logonRequest"/>

         <wsdl:output message="impl:logonResponse" name="logonResponse"/>

         <wsdl:fault message="impl:ServiceBreakDownFault"
name="ServiceBreakDownFault"/>

         <wsdl:fault message="impl:DeniedAccessFault"
name="DeniedAccessFault"/>

         <wsdl:fault message="impl:ExpiredAccountFault"
name="ExpiredAccountFault"/>

      </wsdl:operation>

      <wsdl:operation name="getAccessRights" parameterOrder="in0 in1">

         <wsdl:input message="impl:getAccessRightsRequest"
name="getAccessRightsRequest"/>

         <wsdl:output
message="impl:getAccessRightsResponse"
name="getAccessRightsResponse"/>

         <wsdl:fault message="impl:ServiceBreakDownFault"
name="ServiceBreakDownFault"/>

         <wsdl:fault message="impl:DeniedAccessFault"
name="DeniedAccessFault"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="LogonManagerSoapBinding" type="impl:LogonManager">

      <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="logout">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="logoutRequest">

            <wsdlsoap:body namespace="urn:logon.soap.ota.gemplus.com"
use="literal"/>

         </wsdl:input>

         <wsdl:output name="logoutResponse">

            <wsdlsoap:body namespace="urn:logon.soap.ota.gemplus.com"
use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="logon">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="logonRequest">

            <wsdlsoap:body namespace="urn:logon.soap.ota.gemplus.com"
use="literal"/>

         </wsdl:input>

         <wsdl:output name="logonResponse">

            <wsdlsoap:body namespace="urn:logon.soap.ota.gemplus.com"
use="literal"/>

         </wsdl:output>

         <wsdl:fault name="ServiceBreakDownFault">

            <wsdlsoap:fault name="ServiceBreakDownFault" use="literal"/>

         </wsdl:fault>

         <wsdl:fault name="DeniedAccessFault">

            <wsdlsoap:fault name="DeniedAccessFault" use="literal"/>

         </wsdl:fault>

         <wsdl:fault name="ExpiredAccountFault">

            <wsdlsoap:fault name="ExpiredAccountFault" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAccessRights">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAccessRightsRequest">

            <wsdlsoap:body namespace="urn:logon.soap.ota.gemplus.com"
use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAccessRightsResponse">

            <wsdlsoap:body namespace="urn:logon.soap.ota.gemplus.com"
use="literal"/>

         </wsdl:output>

         <wsdl:fault name="ServiceBreakDownFault">

            <wsdlsoap:fault name="ServiceBreakDownFault" use="literal"/>

         </wsdl:fault>

         <wsdl:fault name="DeniedAccessFault">

            <wsdlsoap:fault name="DeniedAccessFault" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="LogonManagerService">

      <wsdl:port binding="impl:LogonManagerSoapBinding"
name="LogonManager">

         <wsdlsoap:address
location="http://localhost:8081/otasoap/services/LogonManager"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>




-----Original Message-----
From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
Sent: Monday, January 29, 2007 8:52 PM ?
To: axis-user@ws.apache.org
Subject: Re: a problem when using wsimport to generate stubs from a Axis 1.4
server


JAX-WS does not support RPC/encoded.

Anne

On 1/29/07, WANG Chi <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I have a web service developed in Axis 1.4, and I want to use JAX-WS as
the client, I use wsimport to generate the stubs ,but the following errors
occured, can someone help me? thank you very much.

>
> D:\open source\jax-ws\jaxws-ri\bin> wsimport -d d:\test\test1 -s
d:\test\test2
http://localhost:8081/otasoap/services/LogonManager?wsdl

>
> warning: src-resolve: Cannot resolve the name 'soapenc:Array' to a(n)
'type definition' component.
>   line ? of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema2
> error: undefined simple or complex type 'soapenc:Array'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema2
> error: undefined attribute 'soapenc:arrayType'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema2
> error: undefined simple or complex type 'soapenc:Array'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema2
> error: undefined attribute 'soapenc:arrayType'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema2
> error: undefined simple or complex type 'soapenc:string'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema3
> error: undefined simple or complex type 'soapenc:string'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema1
> error: undefined simple or complex type 'soapenc:string'
>   line 0 of
http://localhost:8081/otasoap/services/LogonManager?wsdl#types?schema1
>
>
> The WSDL got from the Axis server is as following, I use RPC/ENCODING
style.
>
>   <?xml version="1.0" encoding="UTF-8" ?>
> - <wsdl:definitions targetNamespace="urn:logon.soap.ota.gemplus.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="urn:logon.soap.ota.gemplus.com"
xmlns:intf="urn:logon.soap.ota.gemplus.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:tns1="http://soap.ota.gemplus.com";
xmlns:tns2="http://bean.soap.ota.gemplus.com";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

> - <!--
> WSDL created by Apache Axis version: 1.4
> Built on Apr 22, 2006 (06:55:48 PDT)
>   -->
> - <wsdl:types>
> - <schema targetNamespace="http://soap.ota.gemplus.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
>   <import namespace="http://bean.soap.ota.gemplus.com"; />
>   <import namespace="urn:logon.soap.ota.gemplus.com" />
>   <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
> - <complexType name="SoapFault">
> - <sequence>
>   <element name="errorCode" nillable="true" type="soapenc:string" />
>   <element name="errorMessage" nillable="true" type="soapenc:string" />
>   </sequence>
>   </complexType>
> - <complexType name="ServiceBreakDownFault">
> - <complexContent>
> - <extension base="tns1:SoapFault">
>   <sequence />
>   </extension>
>   </complexContent>
>   </complexType>
> - <complexType name="DeniedAccessFault">
> - <complexContent>
> - <extension base="tns1:SoapFault">
>   <sequence />
>   </extension>
>   </complexContent>
>   </complexType>
> - <complexType name="ExpiredAccountFault">
> - <complexContent>
> - <extension base="tns1:SoapFault">
>   <sequence />
>   </extension>
>   </complexContent>
>   </complexType>
>   </schema>
> - <schema targetNamespace="urn:logon.soap.ota.gemplus.com"
xmlns="http://www.w3.org/2001/XMLSchema";>
>   <import namespace="http://soap.ota.gemplus.com"; />
>   <import namespace="http://bean.soap.ota.gemplus.com"; />
>   <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
> - <complexType name="ArrayOf_soapenc_string">
> - <complexContent>
> - <restriction base="soapenc:Array">
>   <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]" />
>   </restriction>
>   </complexContent>
>   </complexType>
> - <complexType name="ArrayOf_tns2_CategoryBean">
> - <complexContent>
> - <restriction base="soapenc:Array">
>   <attribute ref="soapenc:arrayType"
wsdl:arrayType="tns2:CategoryBean[]" />
>   </restriction>
>   </complexContent>
>   </complexType>
>   </schema>
> - <schema
targetNamespace="http://bean.soap.ota.gemplus.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
>   <import namespace="http://soap.ota.gemplus.com"; />
>   <import namespace="urn:logon.soap.ota.gemplus.com" />
>   <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
> - <complexType name="CategoryBean">
> - <sequence>
>   <element name="granted" type="xsd:boolean" />
>   <element name="name" nillable="true" type="soapenc:string" />
>   </sequence>
>   </complexType>
>   </schema>
>   </wsdl:types>
> - <wsdl:message name="getAccessRightsResponse">
>   <wsdl:part name="getAccessRightsReturn"
type="impl:ArrayOf_tns2_CategoryBean" />
>   </wsdl:message>
> - <wsdl:message name="logoutResponse">
>   <wsdl:part name="logoutReturn" type="xsd:boolean" />
>   </wsdl:message>
> - <wsdl:message name="getAccessRightsRequest">
>   <wsdl:part name="in0" type="soapenc:string" />
>   <wsdl:part name="in1"
type="impl:ArrayOf_soapenc_string" />
>   </wsdl:message>
> - <wsdl:message name="DeniedAccessFault">
>   <wsdl:part name="fault" type="tns1:DeniedAccessFault" />
>   </wsdl:message>
> - <wsdl:message name="logonRequest">
>   <wsdl:part name="in0" type="soapenc:string" />
>   <wsdl:part name="in1" type="soapenc:string" />
>   </wsdl:message>
> - <wsdl:message name="ExpiredAccountFault">
>   <wsdl:part name="fault" type="tns1:ExpiredAccountFault" />
>   </wsdl:message>
> - <wsdl:message name="logonResponse">
>   <wsdl:part name="logonReturn" type="soapenc:string" />
>   </wsdl:message>
> - <wsdl:message name="ServiceBreakDownFault">
>   <wsdl:part name="fault"
type="tns1:ServiceBreakDownFault" />
>   </wsdl:message>
> - <wsdl:message name="logoutRequest">
>   <wsdl:part name="in0" type="soapenc:string" />
>   </wsdl:message>
> - <wsdl:portType name="LogonManager">
> - <wsdl:operation name="logout" parameterOrder="in0">
>   <wsdl:input message="impl:logoutRequest" name="logoutRequest" />
>   <wsdl:output message="impl:logoutResponse" name="logoutResponse" />
>   </wsdl:operation>
> - <wsdl:operation name="logon" parameterOrder="in0 in1">
>   <wsdl:input message="impl:logonRequest" name="logonRequest" />
>   <wsdl:output message="impl:logonResponse" name="logonResponse" />
>   <wsdl:fault message="impl:ServiceBreakDownFault"
name="ServiceBreakDownFault" />
>   <wsdl:fault message="impl:DeniedAccessFault"
name="DeniedAccessFault" />
>   <wsdl:fault message="impl:ExpiredAccountFault"
name="ExpiredAccountFault" />
>   </wsdl:operation>
> - <wsdl:operation name="getAccessRights" parameterOrder="in0 in1">
>   <wsdl:input message="impl:getAccessRightsRequest"
name="getAccessRightsRequest" />
>   <wsdl:output message="impl:getAccessRightsResponse"
name="getAccessRightsResponse" />
>   <wsdl:fault message="impl:ServiceBreakDownFault"
name="ServiceBreakDownFault" />
>   <wsdl:fault message="impl:DeniedAccessFault"
name="DeniedAccessFault" />
>   </wsdl:operation>
>   </wsdl:portType>
> - <wsdl:binding name="LogonManagerSoapBinding" type="impl:LogonManager">
>   <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"; />
> - <wsdl:operation name="logout">
>   <wsdlsoap:operation soapAction="" />
> - <wsdl:input name="logoutRequest">
>   <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:logon.soap.ota.gemplus.com" use="encoded" />

>   </wsdl:input>
> - <wsdl:output name="logoutResponse">
>   <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:logon.soap.ota.gemplus.com" use="encoded" />

>   </wsdl:output>
>   </wsdl:operation>
> - <wsdl:operation name="logon">
>   <wsdlsoap:operation soapAction="" />
> - <wsdl:input name="logonRequest">
>   <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:logon.soap.ota.gemplus.com" use="encoded" />

>   </wsdl:input>
> - <wsdl:output name="logonResponse">
>   <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:logon.soap.ota.gemplus.com" use="encoded" />

>   </wsdl:output>
> - <wsdl:fault name="ServiceBreakDownFault">
>   <wsdlsoap:fault
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
name="ServiceBreakDownFault" namespace="urn:logon.soap.ota.gemplus.com"
use="encoded" />

>   </wsdl:fault>
> - <wsdl:fault name="DeniedAccessFault">
>   <wsdlsoap:fault
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
name="DeniedAccessFault" namespace="urn:logon.soap.ota.gemplus.com"
use="encoded" />

>   </wsdl:fault>
> - <wsdl:fault name="ExpiredAccountFault">
>   <wsdlsoap:fault
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
name="ExpiredAccountFault" namespace="urn:logon.soap.ota.gemplus.com"
use="encoded" />

>   </wsdl:fault>
>   </wsdl:operation>
> - <wsdl:operation name="getAccessRights">
>   <wsdlsoap:operation soapAction="" />
> - <wsdl:input name="getAccessRightsRequest">
>   <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:logon.soap.ota.gemplus.com" use="encoded" />

>   </wsdl:input>
> - <wsdl:output name="getAccessRightsResponse">
>   <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:logon.soap.ota.gemplus.com" use="encoded" />

>   </wsdl:output>
> - <wsdl:fault name="ServiceBreakDownFault">
>   <wsdlsoap:fault
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
name="ServiceBreakDownFault" namespace="urn:logon.soap.ota.gemplus.com"
use="encoded" />

>   </wsdl:fault>
> - <wsdl:fault name="DeniedAccessFault">
>   <wsdlsoap:fault
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
name="DeniedAccessFault" namespace="urn:logon.soap.ota.gemplus.com"
use="encoded" />

>   </wsdl:fault>
>   </wsdl:operation>
>   </wsdl:binding>
> - <wsdl:service name="LogonManagerService">
> - <wsdl:port binding="impl:LogonManagerSoapBinding"
name="LogonManager">
>   <wsdlsoap:address
location="http://localhost:8081/otasoap/services/LogonManager";
/>
>   </wsdl:port>
>   </wsdl:service>
>   </wsdl:definitions>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
[EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to