Hi,
I have written a sample application in soap that sends a string to the
server ( here the service object ) and gets an object in return. I am unable
to extract the values from the object ( response object ). Also, i would
like to know how to pass an object ( here a bean ) to the service object. I
have mapped the bean and used a serializer and deserializer object --
BeanSerializer for it. I need to pass values in this object.
here is the code for the client, server and the bean object. Please suggest
The client
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------
import java.io.*;
import java.util.*;
import java.net.*;
import org.w3c.dom.*;
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.encoding.*;
import org.apache.soap.encoding.soapenc.*;
import org.apache.soap.rpc.*;
import samplebean;
class ClientSample
{
public static void main(String arg[]) throws Exception
{
int i = 0;
try
{
SOAPMappingRegistry smr = new SOAPMappingRegistry();
//BeanSerializer beanSer = new BeanSerializer();
BeanSerializer bs = new BeanSerializer();
smr.mapTypes(Constants.NS_URI_SOAP_ENC,
new
QName("urn:sampleservermap", "samplebean1"),
samplebean.class, bs, bs);
Call call = new Call();
call.setTargetObjectURI ("urn:sampleserverret");
call.setMethodName ("samplemethod");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
call.setSOAPMappingRegistry(smr);
String symbol = new String("hello");
Vector params = new Vector ();
params.addElement (new Parameter("symbol",
String.class, symbol, null));
call.setParams(params);
URL url = new URL
("http://localhost:8080/soap/servlet/rpcrouter");
Response resp = call.invoke (/* router URL */ url,
/* actionURI */ "" );
// Check the response.
if (resp.generatedFault ()) {
Fault fault = resp.getFault ();
System.out.println ("Ouch, the call failed:
"+fault);
System.out.println (" Fault Code = " +
fault.getFaultCode ());
System.out.println (" Fault String = " +
fault.getFaultString ());
}
else
{
Parameter result = resp.getReturnValue ();
Object value = result.getValue();
samplebean smpbn = (samplebean)value;
System.out.println ("Result is " + smpbn.name +
value);
}
}
catch(Exception e)
{
System.out.println("Exception " +e.getMessage());
}
}
}
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------
The server (service object ) code
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import org.apache.soap.util.xml.*;
import samplebean;
public class SampleServer
{
public SampleServer(){
}
public samplebean samplemethod(String str)
{
samplebean sb = new samplebean();
try
{
System.out.println( "Received from client " +str );
sb.name = "raja";
}
catch ( Exception e)
{
System.out.println ("Server " +e.getMessage());
}
finally
{
return sb ;
}
}
}
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------
The bean class
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------
public class samplebean
{
public samplebean()
{
}
public String name = new String();
public int age;
public String getname()
{
return name;
}
}
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------
Please suggest. Thanx in advance.
Raja
Innova Solutions
Ph: Off : 3543139,40,50 X 217
Res : 3551023