> Has anyone successfully connected a MS Soapclient referencing a WSDL
to
> connect to an Apache Soap Web service that
> has complexTypes?

Yes, but I've only used the low level API for complex types.  See
http://www.scottnichol.com/vbclientapachesoap.htm.

> HRESULT=0x80004005 - SoapMapper:The SoapMapper for element Element
could not
> be created HRESULT=0x80004005 - SoapMapper:The schema definition with
a
> targetnamespace of http://xml.apache.org/xml-soap/ for SoapMapper
Element
> could not be found HRESULT=0x80004005

This error is because your Java service method sessionReq takes an
Element as a request parameter and as the return value.  The generated
WSDL does not define what an Element looks like (from an XML schema
perspective).  You would have to provide this.  If there is an actual
structure to the XML fragment your service expects, you should define a
Java type that reflects that structure and generate WSDL for the method.

> WSDL file
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="urn:OTA"
>                   targetNamespace="urn:OTA"
>                   xmlns="http://schemas.xmlsoap.org/wsdl/";
>                   xmlns:apachesoap="http://xml.apache.org/xml-soap/";
>                   xmlns:impl="urn:OTA"
>                   xmlns:intf="urn:OTA"
>
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
>                   xmlns:tns1="http://rpc.soap.apache.org";
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>
>    <wsdl:types>
>       <schema targetNamespace="http://rpc.soap.apache.org";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>          <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>          <complexType name="SOAPContext">
>             <sequence>
>                <element name="rootPart" nillable="true"
type="xsd:anyType"/>
>                <element name="classLoader" nillable="true"
> type="xsd:anyType"/>
>                <element maxOccurs="unbounded" name="bodyPart"
> nillable="true" type="xsd:anyType"/>
>                <element name="propertyNames" nillable="true"
> type="xsd:anyType"/>
>                <element name="baseURI" nillable="true"
type="xsd:string"/>
>                <element name="count" type="xsd:int"/>
>                <element name="rootPartSet" type="xsd:boolean"/>
>                <element name="contentType" nillable="true"
> type="xsd:string"/>
>                <element name="subType" nillable="true"
type="xsd:string"/>
>             </sequence>
>          </complexType>
>          <element name="SOAPContext" nillable="true"
> type="tns1:SOAPContext"/>
>       </schema>
>
>       <schema targetNamespace="http://xml.apache.org/xml-soap";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>          <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>          <element name="Element" nillable="true"
type="apachesoap:Element"/>
>       </schema>
>    </wsdl:types>
>
>    <wsdl:message name="sessionReqRequest">
>       <wsdl:part name="cxt" type="tns1:SOAPContext"/>
>       <wsdl:part name="domRequest" type="apachesoap:Element"/>
>    </wsdl:message>

You need to edit the WSDL to remove the SOAPContext parameter.  This is
*not* a parameter transmitted as part of the SOAP request.  It is
provided internally through an Apache SOAP mechanism.

Scott Nichol


--
To unsubscribe, e-mail:   <mailto:soap-user-unsubscribe@;xml.apache.org>
For additional commands, e-mail: <mailto:soap-user-help@;xml.apache.org>

Reply via email to