Listing 1
import Axis.*;
import SessionManager.*;
import java.util.Properties;
import org.omg.CORBA.ORB;
public class AxisCalculator
{
public static void main(String args[])
{
AxisCalculator ax= new AxisCalculator();
calculator comp = ax.getComponent();
try {
System.out.println("Result:" + comp.add(7,6));
} catch(Exception e) {
System.out.println("functioncall failed: " + e.toString());
}
}
public int add(int i1, int i2)
{
calculator comp = getComponent();
try {
return comp.add(i1,i2);
} catch(Exception e) {
System.out.println("Functioncall failed: " +
e.toString());
return -1;
}
}
public int subtract(int i1, int i2)
{
calculator comp = getComponent();
try {
return comp.subtract(i1,i2);
} catch(Exception e) {
System.out.println("Functioncall failed: " +
e.toString());
return -1;
}
}
private static calculator getComponent()
{
Properties props = new Properties();
props.put("org.omg.CORBA.ORBClass",
"com.sybase.CORBA.ORB");
ORB orb = ORB.init(((String []) (null)), props);
SessionManager.Manager manager =
ManagerHelper.narrow(orb.string_to_object("iiop://
localhost:9000"));
SessionManager.Session session =
manager.createSession("jagadmin", "");
SessionManager.Factory factory = FactoryHelper.narrow(session.lookup("Axis/calculator"));
calculator comp = calculatorHelper.narrow
(factory.create());
return comp;
}
}
Listing 2
import java.io.PrintStream;
import java.net.URL;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
public class CalcClient
{
public CalcClient()
{
}
public static void main(String args[])
throws Exception
{
Options options = new Options(args);
String endpoint = "http://localhost:" +
options.getPort()
+ "/axis/AxisCalculator.jws";
System.out.println("Server: " + endpoint);
args = options.getRemainingArgs();
if(args == null || args.length != 3)
{
System.err.println("Usage: CalcClient
<add|subtract> arg1 arg2");
return;
}
String method = args[0];
if(!method.equals("add") && !method.equals
("subtract"))
{
System.err.println("Usage: CalcClient
<add|subtract> arg1 arg2");
return;
} else
{
Integer i1 = new Integer(args[1]);
Integer i2 = new Integer(args[2]);
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL(
endpoint));
call.setOperationName(method);
System.out.println("Method: " + method);
call.addParameter("op1", XMLType.XSD_INT,
ParameterMode.IN);
call.addParameter("op2", XMLType.XSD_INT,
ParameterMode.IN);
call.setReturnType(XMLType.XSD_INT);
Integer ret = (Integer)call.invoke(new
Object[] {
i1, i2
});
System.out.println("Got result : " + ret);
return;
}
}
}
Listing 3
OLEObject soap, t
long ll_status
String ls_retVal
String ls_url
ls_url = "http://localhost:8080/axis/AxisCalculator.jws"
soap = CREATE OLEObject
t = CREATE OLEObject
ll_status = soap.ConnectToNewObject ("PocketSOAP.Envelope.2")
ll_status = t.ConnectToNewObject ("PocketSOAP.HTTPTransport.2")
soap.EncodingStyle = ""
soap.methodName = "subtract"
soap.Parameters.Create( "a1", 6)
soap.Parameters.Create( "a2", 10)
t.Send(ls_url, soap.serialize)
soap.parse(t)
ls_retVal = String(soap.Parameters.Item(0).Value)
MessageBox("Info", "AXIS returns result: " + ls_retVal)
DESTROY soap
DESTROY t