Hi, Soap Folks, The following program always return the error message: D:\java\apache\samples\hello>java samples.hello.HelloC invoke service URL= http://localhost:8181/soap/servlet/rpcrouter URN =urn:demo1:hello SOAPException= SOAP-ENV:Client, I only know how to serialize an 'org.w3c.dom.Ele ment'.
I want to know why I cannot use the Literal Encoding for it while SOAP_ENC works fine. Besides, if I use a VB client, the encodingstyle is at the Envelop Level. <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body> if I use a Java client(Apache Soap), the encodingstyle is at the method level. <ns1:SayHello xmlns:ns1="urn:demo1:hello" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> My service is written in Apache Soap, will it recognize the correct encodingStyle if the request is from a VB client? Thank you in advance. -Chengmin ================================================================= package samples.hello; import java.net.*; import java.util.*; import org.apache.soap.*; // Body, Envelope, Fault, Header import org.apache.soap.rpc.*; // Call, Parameter, Response public class HelloC { public static void main( String[] args ) throws Exception { //URL url = new URL( "http://localhost:8080/soap/servlet/rpcrouter" ); URL url = new URL( "http://localhost:8181/soap/servlet/rpcrouter" ); String urn = "urn:demo1:hello"; String sName = "World"; if (args.length> 0) sName = args[0]; Call call = new Call(); // prepare the service invocation call.setTargetObjectURI( urn ); call.setMethodName( "SayHello" ); //call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC ); //call.setEncodingStyleURI( Constants.NS_URI_LITERAL_XML ); //call.setEncodingStyleURI( Constants.NS_URI_SCHEMA_XSD ); Vector params = new Vector(); params.addElement( new Parameter( "sName", String.class, sName, Constants.NS_URI_LITERAL_XML ) ); call.setParams( params ); try { System.out.println( "invoke service\n" + " URL= " + url + "\n URN =" + urn ); Response response = call.invoke( url, "" ); // invoke the service if( !response.generatedFault() ) { Parameter result = response.getReturnValue(); // response was OK System.out.println( "Result= " + result.getValue() ); } else { Fault f = response.getFault(); // an error occurred System.err.println( "Fault= " + f.getFaultCode() + ", " + f.getFaultString() ); } } catch( SOAPException e ) // call could not be sent properly { System.err.println( "SOAPException= " + e.getFaultCode() + ", " + e.getMessage() ); } } }
