Run it through the tcptunnel and see what is actually going back and
forth.

cheesr
dim

On Mon, 10 Sep 2001 [EMAIL PROTECTED] wrote:

> Hi Minh/Dmitri and others,
> I have incorporated your suggestion.
> Unfortunately, i am not able to get this to work either :(
> 
> Now, running the program does not throw any exception.
> I am printing the value of the result object at the end now.
> What i get now is zero and not the correct result.
> 
> I have checked the method name an param names/values.
> they seem okay to me.
> But even if i give a wrong name to the method or params, it does not throw
> any exception and returns the same result (0). (~~~why's that?~~~)
> 
> Any clue as to what should be done now?
> There seems to be just a very small problem...... (don't know what)
> 
> thanks again,
> ==Rahul==
> -------------------------------------------
> [EMAIL PROTECTED]
> Ph: 5579000 Extn: 1029
> -------------------------------------------
> 
> 
> 
> 
> 
> Minh Kama Yie <[EMAIL PROTECTED]> on 09/10/2001 11:18:16 AM
> 
> Please respond to [EMAIL PROTECTED]
> 
> To:     [EMAIL PROTECTED]
>         Rahul Sawhney/BTC/MS/PHILIPS@EMEA2
> cc:
> Subject:  Re: Deserialization problem
> Classification:
> 
> 
> 
> Hi Rahul,
> 
> The problem is the namespace in which the result of the service is defined.
> If you map the result using the the SOAPMappingRegistry like so:
> 
> {
>      ...
>         SOAPMappingRegistry smr = new SOAPMappingRegistry();
>         smr.mapTypes(Constants.NS_URI_SOAP_ENC, new
> QName("http://localhost/";, "AddResult"), Integer.class, null, new
> IntObjectDeserializer());
>         call.setSOAPMappingRegistry(smr);
>      ...
> }
> 
> then it should map to the correct encoding type. Currently you're telling the
> deserializer to use the "http://schemas.xmlsoap.org/soap/encoding/"; namespace
> but the service is defining it in the "http://localhost/"; namespace.  ( see
> the c# line with the code {ResponseNamespace="http://localhost/"})
> 
> 
> Hope that helps :)
> 
> 
> 
> On Monday 10 September 2001 15:19, [EMAIL PROTECTED] wrote:
> Hi,
> I am trying to invoke a .Net enabled web service using Java with Apache SOAP
>  toolkit.
> 
> I get the following exception:
> [SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to
>  deserialize a 'http://localh ost/:AddResult' using encoding style
>  'http://schemas.xmlsoap.org/soap/encoding/'.; targetException=j
>  ava.lang.IllegalArgumentException: No Deserializer found to deserialize a
>  'http://localhost/:AddResu lt' using encoding style
>  'http://schemas.xmlsoap.org/soap/encoding/'.] at
>  org.apache.soap.rpc.Call.invoke(Call.java:246)
>         at SoapClient1.main(SoapClient1.java:39)
> 
> Here's my trial code:
> /*
>  * SoapClient1.java
>  *
>  * Created on September 9, 2001, 5:15 PM
>  */
> // Required due to use of URL class , required by Call class
> import java.net.*;
> 
> // Required due to use of Vector class
> import java.util.*;
> 
> // Apache SOAP classes used by client
> import org.apache.soap.util.xml.*;
> import org.apache.soap.*;
> import org.apache.soap.rpc.*;
> 
> /**
>  *
>  * @author  srahul
>  * @version
>  */
> public class SoapClient1 {
> 
>     /** Creates new SoapClient1 */
>     public SoapClient1() {
>     }
> 
>     public static void main(String[] args) {
>         Call call = new Call();
>         call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
>         call.setTargetObjectURI("urn:CalcSoap");
>         call.setMethodName ("Add");
>         Vector params=new Vector();
>         params.addElement (new Parameter ("x", String.class, "1", null));
>         params.addElement(new Parameter ("y", String.class, "2", null));
>         call.setParams(params);
>         try {
>             URL url = new URL ("http://161.85.17.164/calc.asmx";);
>             Response resp = call.invoke(url, "http://localhost/Add";);
>             if (resp.generatedFault()) {
>                 Fault fault=resp.getFault();
>                 System.out.println(" Fault code: " + fault.getFaultCode());
>                 System.out.println(" Fault string: "+fault.getFaultString());
>             }
>             Parameter result=resp.getReturnValue();
>             Object o = result.getValue();
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
> 
> }
> 
> 
> 
> However i am able to iunvoke the service quite easily using c# and the proxy
>  code that VStudio .Net generates.
> Here's the proxy file that is generated by Vstudio.net (if it is of any
>  use...)
>  //--------------------------------------------------------------------------
> ---- // <autogenerated>
> //     This code was generated by a tool.
> //     Runtime Version: 1.0.2914.16
> //
> //     Changes to this file may cause incorrect behavior and will be lost if
> //     the code is regenerated.
> // </autogenerated>
> //---------------------------------------------------------------------------
> ---
> 
> namespace GeorgeCalc.WebReference1 {
>     using System.Diagnostics;
>     using System.Xml.Serialization;
>     using System;
>     using System.Web.Services.Protocols;
>     using System.Web.Services;
> 
> 
>     [System.Web.Services.WebServiceBindingAttribute(Name="CalcSoap",
>  Namespace="http://localhost/";)] public class Calc :
>  System.Web.Services.Protocols.SoapHttpClientProtocol {
> 
>         [System.Diagnostics.DebuggerStepThroughAttribute()]
>         public Calc() {
>             this.Url = "http://161.85.17.164/calc.asmx";;
>         }
> 
>         [System.Diagnostics.DebuggerStepThroughAttribute()]
> 
>  [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost
> /Add", RequestNamespace="http://localhost/";,
>  ResponseNamespace="http://localhost/";,
>  Use=System.Web.Services.Description.SoapBindingUse.Literal,
>  ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
>  public int Add(int x, int y) {
>             object[] results = this.Invoke("Add", new object[] {
>                         x,
>                         y});
>             return ((int)(results[0]));
>         }
> 
>         [System.Diagnostics.DebuggerStepThroughAttribute()]
>         public System.IAsyncResult BeginAdd(int x, int y,
>  System.AsyncCallback callback, object asyncState) { return
>  this.BeginInvoke("Add", new object[] {
>                         x,
>                         y}, callback, asyncState);
>         }
> 
>         [System.Diagnostics.DebuggerStepThroughAttribute()]
>         public int EndAdd(System.IAsyncResult asyncResult) {
>             object[] results = this.EndInvoke(asyncResult);
>             return ((int)(results[0]));
>         }
>     }
> }
> 
> 
> Can someone please let me know, what i am doing wrong here???
> 
> thanks!
> ==Rahul==
> -------------------------------------------
> [EMAIL PROTECTED]
> Ph: 5579000 Extn: 1029
> -------------------------------------------
> 
> --
> Regards,
> 
> Minh Kama Yie
> Nuix
> 
> 
> 
> 
> 
> 
> 
> 

Reply via email to