axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anne Thomas Manes" <atma...@gmail.com>
Subject Re: Interop with .Net WS
Date Tue, 04 Apr 2006 07:22:30 GMT
The .NET service is expecting you to send a doc/literal request rather than
an rpc/encoded request. Try generating a stub from the WSDL rather than
using the DII interface.

Anne

On 4/3/06, Tony Hamill <anthony.hamill@ntlworld.com> wrote:
>
> Hi,
> I am attempting to call a very basic "HelloWorld" .Net WS using AXIS. The
> XML submitted from my AXIS client looks like
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance">
> <soapenv:Body>
> <ns1:HelloWorld soapenv:encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://tempuri.org/
> ">
> <p_name xsi:type="xsd:string">John</p_name>
> </ns1:HelloWorld>
> </soapenv:Body>
> </soapenv:Envelope>
>
> While this invokes the service it does not seem to pass the parameter in.
> I assumed this was because the p_name parameter was not qualified so when I
> manually modify the XML to
>
> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="
> http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <ns1:HelloWorld xmlns:ns1="http://tempuri.org/">
> <ns1:p_name xsi:type="xsd:string">John</ns1:p_name>
> </ns1:HelloWorld>
> </soap:Body>
> </soap:Envelope>
>
> and submit this via a SOAP Tool I have it works fine. My question is how
> do I qualify the parameter with the ns1: qualification in code? or how do I
> set the default namespace as http://tempuri.org/ so the child node will
> inherit it?
>
> Also do child entities not inherit the namespace of their parent? i.e.
> Should the p_name parameter need qualification? (obviously it does but I
> don't really understand why)
>
> Any help greatly appreciated.
>
> Java Source
>
> /*
> * Main.java
> *
> * Created on 14 March 2006, 20:17
> *
> * To change this template, choose Tools | Template Manager
> * and open the template in the editor.
> */
>
> package javaapplication1;
>
>
> import org.apache.axis.client.Call;
> import org.apache.axis.client.Service;
> import javax.xml.namespace.QName;
>
> /**
> *
> * @author
> */
> public class Main {
>
> /** Creates a new instance of Main */
> public Main() {}
>
> /**
> * @param args the command line arguments
> */
> public static void main(String [] args) {
> try {
> String endpoint = "
> http://localhost:8090/com.company.AXISInterOp/Service1.asmx";
>
> Service service = new Service();
> Call call = (Call) service.createCall();
>
> call.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call.setUseSOAPAction(true);
> call.setSOAPActionURI("http://tempuri.org/HelloWorld");
> call.setOperationName(new QName("http://tempuri.org/", "HelloWorld") );
>
> call.addParameter("p_name",
> org.apache.axis.Constants.XSD_STRING,
> javax.xml.rpc.ParameterMode.IN);
> call.setReturnType(org.apache.axis.Constants.XSD_STRING);
>
> String ret = (String) call.invoke( new Object[] { new String("John") } );
>
>
> System.out.println("Sent 'John!', got '" + ret + "'");
> } catch (Exception e) {
> System.err.println(e.toString());
> }
> }
> }
>

Mime
View raw message