cancel
Showing results for 
Search instead for 
Did you mean: 

xMII as a webservice client

Former Member
0 Kudos

Hi All,

I am trying to connect the xMII using BLS WEb service object. but the xMII showing error in reading the WSDL file. Here is the WSDL

<?xml version="1.0" encoding="UTF-8" ?>

- <wsdl:definitions targetNamespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:intf="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 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:message name="getTimeRequest">

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

</wsdl:message>

- <wsdl:message name="getTimeResponse">

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

</wsdl:message>

- <wsdl:portType name="TimeServiceEndpoint">

- <wsdl:operation name="getTime" parameterOrder="name">

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

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

</wsdl:operation>

</wsdl:portType>

- <wsdl:binding name="TimeServiceEndpointSoapBinding" type="impl:TimeServiceEndpoint">

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

- <wsdl:operation name="getTime">

<wsdlsoap:operation soapAction="" />

- <wsdl:input name="getTimeRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />

</wsdl:input>

- <wsdl:output name="getTimeResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws" use="encoded" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

- <wsdl:service name="TimeServiceEndpointService">

- <wsdl:port binding="impl:TimeServiceEndpointSoapBinding" name="TimeServiceEndpoint">

<wsdlsoap:address location="http://localhost:8084/time_service/TimeServiceEndpoint.jws" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

It's able to read add the ports oparations but says "Error: SOAP Service could not be loaded, Unable to determine Inputs from WSDL"

This is a standard WSDL generated for a java based web service by Axis.

Please tell me what should I do..???

Thanks & Regards,

Piyush Batwal

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

xMII's web service action does not support rpc/encoded style web services. In general, rpc styles are considered obsolete. The WS-I organization requires the use of document/literal encoding for future interoperability. You can quite easily have Apache Axis generate document/literal services as well.

The alternative approach is to:

1. Capture a sample of the incoming and outgoing SOAP XML documents for this service

2. Copy them as reference documents in xMII.

3. Use the ReferenceDocument action(s) and the xMII "Post" action to call the web service. You'll need to extract the SOAP endpoint from the WSDL and use it as the target for the HTTP POST (in your case, this is "http://localhost:8084/time_service/TimeServiceEndpoint.jws").

- Rick

Former Member
0 Kudos

Thanks for the answer Rick.

I have succesfully executed one .net based service having a WSDL of DOCUMENT type.

I changed the rpc to document/literal in my wsdl but still its not able to "understand the inputs" given in WSDL.

My Problem is "<b>I am not able to firstly CONFIGURE the WSDL in webservice action</b>"

<b>

NOT WORKING WSDL</b>

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:intf="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws">

<b> <wsdl:message name="getTimeRequest">

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

</wsdl:message>

<wsdl:message name="getTimeResponse">

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

</wsdl:message>

<wsdl:portType name="TimeServiceEndpoint">

<wsdl:operation name="getTime" parameterOrder="name">

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

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

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="TimeServiceEndpointSoapBinding" type="impl:TimeServiceEndpoint">

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

<wsdl:operation name="getTime">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getTimeRequest">

<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace"/>

</wsdl:input>

<wsdl:output name="getTimeResponse">

<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="TimeServiceEndpointService">

<wsdl:port name="TimeServiceEndpoint" binding="impl:TimeServiceEndpointSoapBinding">

<wsdlsoap:address location="http://localhost:8084/time_service/TimeServiceEndpoint.jws"/>

</wsdl:port>

</wsdl:service>

<!--

WSDL created by Apache Axis version: 1.4

Built on Apr 22, 2006 (06:55:48 PDT)

-->

</wsdl:definitions>

<b>Working WSDL</b>

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:tns="http://localhost:8084/time_service/TimeServiceEndpoint.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws">

<wsdl:types>

<xsd:schema targetNamespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws">

<xsd:element name="person" type="xsd:string">

</xsd:element>

<xsd:element name="getTimeReturn">

<xsd:complexType>

<xsd:sequence>

<xsd:element minOccurs="0" maxOccurs="1" name="out" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

</wsdl:types>

<b><wsdl:message name="getTimeRequest">

<wsdl:part name="name" element="tns:person"/></b>

</wsdl:message>

<wsdl:message name="getTimeResponse">

<wsdl:part name="getTimeReturn" element="tns:getTimeReturn"/>

</wsdl:message>

<wsdl:portType name="TimeServiceEndpoint">

<wsdl:operation name="getTime" parameterOrder="name">

<wsdl:input name="getTimeRequest" message="tns:getTimeRequest"/>

<wsdl:output name="getTimeResponse" message="tns:getTimeResponse"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="TimeServiceEndpointSoapBinding" type="TimeServiceEndpoint">

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

<wsdl:operation name="getTime">

<wsdlsoap:operation soapAction="kill me"/>

<wsdl:input name="getTimeRequest">

<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws"/>

</wsdl:input>

<wsdl:output name="getTimeResponse">

<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8084/time_service/TimeServiceEndpoint.jws"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="TimeServiceEndpointService">

<wsdl:port name="TimeServiceEndpoint" binding="TimeServiceEndpointSoapBinding">

<wsdlsoap:address location="http://localhost:8084/time_service/TimeServiceEndpoint.jws"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

if you watch the bold portions carefully... the ELEMENT needs to be defined explicitely defined in WSDL:TYPES..... This i achieved by changing the wsdl manually..... How can i make Axis generate such WSDL ......or If I can defined the NON WORKING WSDLs XSD somewhare in xMII...

Thanks & Regards,

Piyush....

Former Member
0 Kudos

I can't offer much help with Axis, as I don't use it and don't know it. I can see, however, that the "working WSDL" is still not document/literal - it is document/encoded.