Thank you very much. hongfan -----Original Message----- From: Scott Nichol [mailto:[EMAIL PROTECTED]] Sent: Saturday, January 04, 2003 11:23 AM To: [EMAIL PROTECTED] Subject: Re: PL HELP ME... URGENT HELP REQUIRED
It looks like you've done some fiddling in this area already. Here's what I believe should work. //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer ser_0 = new //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer(); //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer deSer_0 = new //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer(); //smr.mapTypes("http://schemas.xmlsoap.org/soap/encoding/",new ///QName ("http://kmg/","UserProfile"),kmg.UserProfile.class, ser_0, deSer_0); BeanSerializer myObjSer = new BeanSerializer (); smr.mapTypes( Constants.NS_URI_SOAP_ENC,new QName ("http://kmg/", "UserProfile"), kmg.UserProfile.class, myObjSer, myObjSer ); Specifically, this defines a deserializer (myObjSer) for QName http://kmg/:UserProfile with encoding Constants.NS_URI_SOAP_ENC. Whether that deserializer works with that type, I do not know. Scott Nichol ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, August 08, 2002 6:54 AM Subject: Re: PL HELP ME... URGENT HELP REQUIRED > > Scott > MANY MANY TAHNX for ur Patienece to READ all mails and help US . > After lot of problems i am concentrating on a very small example which > uses XSD which return a objects of class type > > task > 1. run from browser using soap apache 2.3.1 and weblogic6.1 > 2. run through .net client using wsdl > i am getting following error with browser any idea about that... > > exception: [SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer > found to deserialize a 'http://kmg/:UserProfile' using encoding style > 'http://schemas.xmlsoap.org/soap/encoding/'.; > targetException=java.lang.IllegalArgumentException: No Deserializer found > to deserialize a 'http://kmg/:UserProfile' using encoding style > 'http://schemas.xmlsoap.org/soap/encoding/'.] .. > > here is the code for that > > > deployment decsriptor > > > <?xml version="1.0"?> > <isd:service id="urn:ROY" xmlns:isd > ="http://xml.apache.org/xml-soap/deployment"> > <isd:provider type="java" scope="Application" methods > ="getUserApplicationProfile getName"> > <isd:java class="kmg.getApp" static="false"/> > </isd:provider> > <isd:mappings> > <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="http://kmg/" qname="x:UserProfile" > javaType="kmg.UserProfile" > java2XMLClassName > ="org.apache.soap.encoding.soapenc.BeanSerializer" > xml2JavaClassName > ="org.apache.soap.encoding.soapenc.BeanSerializer"/> > <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="" qname="x:websvcs" > javaType="kmg.websvcs" > xml2JavaClassName > ="org.apache.soap.encoding.soapenc.BeanSerializer"/> > <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="" qname="x:xx" > xml2JavaClassName > ="org.apache.soap.encoding.soapenc.StringDeserializer"/> > <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="" qname="x:string" > xml2JavaClassName > ="org.apache.soap.encoding.soapenc.StringDeserializer"/> > </isd:mappings> > </isd:service> > > > """"""""""proxy class """"""""""""""""""""""""""""""""""""" > > > package kmg; > //import com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer > import java.net.*; > import java.util.*; > import org.w3c.dom.*; > import org.apache.soap.*; > import org.apache.soap.encoding.*; > import org.apache.soap.encoding.soapenc.*; > import org.apache.soap.rpc.*; > import org.apache.soap.util.xml.*; > import org.apache.soap.messaging.*; > import org.apache.soap.transport.http.*; > > public class getAppProxy > { > private Call call; > private URL url = null; > //private String stringURL > = "http://localhost:9080/KMGtester/servlet/rpcrouter"; > private String stringURL > = "http://192.168.1.22:7001/soap/servlet/rpcrouter"; > private java.lang.reflect.Method setTcpNoDelayMethod; > > public getAppProxy() > { > try > { > setTcpNoDelayMethod = SOAPHTTPConnection.class.getMethod > ("setTcpNoDelay", new Class[]{Boolean.class}); > } > catch (Exception e) > { > } > call = createCall(); > } > > public synchronized void setEndPoint(URL url) > { > this.url = url; > } > > public synchronized URL getEndPoint() throws MalformedURLException > { > return getURL(); > } > > private URL getURL() throws MalformedURLException > { > if (url == null && stringURL != null && stringURL.length() > 0) > { > url = new URL(stringURL); > } > return url; > } > > public synchronized kmg.UserProfile > getUserApplicationProfile(java.lang.String username,java.lang.String > password) throws Exception > { > String targetObjectURI = "urn:ROY"; > String SOAPActionURI = ""; > > if(getURL() == null) > { > throw new SOAPException(Constants.FAULT_CODE_CLIENT, > "A URL must be specified via getAppProxy.setEndPoint(URL)."); > } > > call.setMethodName("getUserApplicationProfile"); > call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); > call.setTargetObjectURI(targetObjectURI); > Vector params = new Vector(); > Parameter usernameParam = new Parameter("username", > java.lang.String.class, username, Constants.NS_URI_SOAP_ENC); > params.addElement(usernameParam); > Parameter passwordParam = new Parameter("password", > java.lang.String.class, password, Constants.NS_URI_SOAP_ENC); > params.addElement(passwordParam); > call.setParams(params); > Response resp = call.invoke(getURL(), SOAPActionURI); > > //Check the response. > if (resp.generatedFault()) > { > Fault fault = resp.getFault(); > call.setFullTargetObjectURI(targetObjectURI); > throw new SOAPException(fault.getFaultCode(), fault.getFaultString > ()); > } > else > { > Parameter refValue = resp.getReturnValue(); > return ((kmg.UserProfile)refValue.getValue()); > } > } > > public synchronized java.lang.String getName(java.lang.String xx) throws > Exception > { > String targetObjectURI = "urn:ROY"; > String SOAPActionURI = ""; > > if(getURL() == null) > { > throw new SOAPException(Constants.FAULT_CODE_CLIENT, > "A URL must be specified via getAppProxy.setEndPoint(URL)."); > } > > call.setMethodName("getName"); > call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); > call.setTargetObjectURI(targetObjectURI); > Vector params = new Vector(); > Parameter xxParam = new Parameter("xx", java.lang.String.class, xx, > Constants.NS_URI_SOAP_ENC); > params.addElement(xxParam); > call.setParams(params); > Response resp = call.invoke(getURL(), SOAPActionURI); > > //Check the response. > if (resp.generatedFault()) > { > Fault fault = resp.getFault(); > call.setFullTargetObjectURI(targetObjectURI); > throw new SOAPException(fault.getFaultCode(), fault.getFaultString > ()); > } > else > { > Parameter refValue = resp.getReturnValue(); > return ((java.lang.String)refValue.getValue()); > } > } > > protected Call createCall() > { > SOAPHTTPConnection soapHTTPConnection = new SOAPHTTPConnection(); > if ( setTcpNoDelayMethod != null) > { > try > { > setTcpNoDelayMethod.invoke(soapHTTPConnection, new Object > []{Boolean.TRUE}); > } > catch (Exception ex) > { > } > } > Call call = new Call(); > call.setSOAPTransport(soapHTTPConnection); > SOAPMappingRegistry smr = call.getSOAPMappingRegistry(); > //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer ser_0 = new > //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer(); > //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer deSer_0 = new > //com.ibm.etools.webservice.runtime.XSDAnyTypeSerializer(); > > //smr.mapTypes("http://schemas.xmlsoap.org/soap/encoding/",new ///QName > ("http://kmg/","UserProfile"),kmg.UserProfile.class, ser_0, deSer_0); > > BeanSerializer myObjSer = new BeanSerializer (); > smr.mapTypes( Constants.NS_URI_SOAP_ENC,new QName > ("http://schemas.xmlsoap.org/soap/encoding/", "UserProfile"), > kmg.UserProfile.class, myObjSer, myObjSer ); > > SOAPMappingRegistry smr1 = call.getSOAPMappingRegistry(); > return call; > } > } <Truncated by the respondent> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>