XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Peter DennerSubject: WS with SOAP - problem with parameter passing
Author: Peter Denner
Date: 24 Jan 2007 07:37 AM
Originally Posted: 24 Jan 2007 07:35 AM
Hi - I am having a problem with passing the parameters in the right format in the soap enveolpe.

I have a web service (axix server) running and I can get the data with a axis client (java). Here is the code embedded in a jsp:

Import "java.util.HashMap"
import "java.util.List"
import "java.util.Map"
import "org.apache.axis.client.Call"
import "org.apache.axis.client.Service"
import "javax.xml.namespace.QName"

String endpoint ="http://localhost:8080/.../services/InquiryWebService";

Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress( new URL(endpoint) );
call.setOperationStyle("rpc");
call.setOperation("call");

call.setEncodingStyle("http://schemas.xmlsoap.org/soap/encoding/");

Object[] oParams = new Object[4];
String sUserName = "USER";
String sPassword = "PASSWORD";
String sInquiryName = "CollectiveNumberParts";

Map<String,String> mParams = new HashMap<String,String>();
oParams[0] = sUserName;
oParams[1] = sPassword;
oParams[2] = sInquiryName;
mParams.put("TYPE_PATTERN","OBJECTTYPE*");
mParams.put("PATTERN","OBJECTNUMBER*");
oParams[3] = mParams;

ret = call.invoke("call", oParams).toString();


When I try to get the data within Stylus, I don't know the right format for the SOAP envelope. Stylus returns only in0, in1, in2 and in3. The filling of the first three variables is easy.
Because the fourth variable is a HashMap in the axis java client, I don't know the right format for this in the SOAP-Envelope.
Here is what I have:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns1:call xmlns:ns1="http://webServices.xxx.xxxxx.com">
<in0 xsi:type="xsd:string">USER</in0>
<in1 xsi:type="xsd:string">PASSWORD</in1>
<in2 xsi:type="xsd:string">CollectiveNumberParts</in2>
<in3>

??????
<item/>

</in3>
</ns1:call>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The questionmarks are representing my "gap".
I've tried it with several strings like:

<in3 xsi:type="xsd:struct[2,2]">
<item xsi:type="xsd:string">TYPE_PATTERN</item>
<item xsi:type="xsd:string">OBJECTTYPE</item>
<item xsi:type="xsd:string">PATTERN</item>
<item xsi:type="xsd:string">OBJECTNUMBER*</item>
</in3>

but nothing works ...
Can you help me?

Thanks in advance
Peter

Postnext
Ivan PedruzziSubject: WS with SOAP - problem with parameter passing
Author: Ivan Pedruzzi
Date: 24 Jan 2007 10:20 AM
Hi Peter,

Could you please provide the WSDL document that describes the service?

Thank you
Ivan Pedruzzi
Stylus Studio Team

Postnext
Peter DennerSubject: WS with SOAP - problem with parameter passing
Author: Peter Denner
Date: 25 Jan 2007 07:35 AM
Originally Posted: 25 Jan 2007 07:26 AM
I hope this will help you ...
(I know, that the service requested a apacheSOAP Map, but I didn't find any documentation about that ...)

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost:8080/.../services/InquiryWebService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/.../services/InquiryWebService" xmlns:intf="http://localhost:8080/.../services/InquiryWebService" 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.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
<wsdl:types>
<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://localhost:8080/.../services/InquiryWebService"/>
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="mapItem">
<sequence>
<element name="key" nillable="true" type="xsd:anyType"/>

<element name="value" nillable="true" type="xsd:anyType"/>
</sequence>
</complexType>
<complexType name="Map">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem"/>
</sequence>
</complexType>
<complexType name="Vector">

<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType"/>
</sequence>
</complexType>
</schema>
<schema targetNamespace="http://localhost:8080/.../services/InquiryWebService" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xml.apache.org/xml-soap"/>
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOf_xsd_anyType">

<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>

<wsdl:message name="callRequest">

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

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

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

<wsdl:part name="in3" type="apachesoap:Map"/>

</wsdl:message>

<wsdl:message name="listRequest">

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

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

</wsdl:message>

<wsdl:message name="callResponse">

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

</wsdl:message>

<wsdl:message name="listResponse">

<wsdl:part name="listReturn" type="impl:ArrayOf_xsd_anyType"/>

</wsdl:message>

<wsdl:portType name="InquiryCall">

<wsdl:operation name="call" parameterOrder="in0 in1 in2 in3">

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

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

</wsdl:operation>

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

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

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

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="InquiryWebServiceSoapBinding" type="impl:InquiryCall">

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

<wsdl:operation name="call">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="callRequest">

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

</wsdl:input>

<wsdl:output name="callResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/ematrix/services/InquiryWebService" use="encoded"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="list">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="listRequest">

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

</wsdl:input>

<wsdl:output name="listResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/.../services/InquiryWebService" use="encoded"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="InquiryCallService">

<wsdl:port binding="impl:InquiryWebServiceSoapBinding" name="InquiryWebService">

<wsdlsoap:address location="http://localhost:8080/.../services/InquiryWebService"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Postnext
Ivan PedruzziSubject: WS with SOAP - problem with parameter passing
Author: Ivan Pedruzzi
Date: 25 Jan 2007 10:49 AM

The SOAP request should look like the attached file

Hope this helps
Ivan Pedruzzi
Stylus Studio Team


DocumentSOAPRequest.xml

Posttop
Peter DennerSubject: WS with SOAP - problem with parameter passing
Author: Peter Denner
Date: 26 Jan 2007 07:04 AM
I am eternally grateful for your help ... it works !!!

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.