Main entry point. Tests a variety of echo methods and reports
on their results.
Arguments are of the form:
-h localhost -p 8080 -s /soap/servlet/rpcrouter
// set up the call object
Options opts = new Options(args);
service = new Service();
call = (Call) service.createCall();
call.setTargetEndpointAddress( new URL(opts.getURL()) );
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.soapinterop.org/Bid");
// register the PurchaseOrder class
QName poqn = new QName("http://www.soapinterop.org/Bid",
"PurchaseOrder");
Class cls = PurchaseOrder.class;
call.registerTypeMapping(cls, poqn, BeanSerializerFactory.class, BeanDeserializerFactory.class);
// register the Address class
QName aqn = new QName("http://www.soapinterop.org/Bid", "Address");
cls = Address.class;
call.registerTypeMapping(cls, aqn, BeanSerializerFactory.class, BeanDeserializerFactory.class);
// register the LineItem class
QName liqn = new QName("http://www.soapinterop.org/Bid", "LineItem");
cls = LineItem.class;
call.registerTypeMapping(cls, liqn, BeanSerializerFactory.class, BeanDeserializerFactory.class);
try {
// Default return type based on what we expect
call.setOperationName( new QName("http://www.soapinterop.org/Bid", "Buy" ));
call.addParameter( "PO", poqn, ParameterMode.IN );
call.setReturnType( XMLType.XSD_STRING );
LineItem[] li = new LineItem[2];
li[0] = new LineItem("Tricorder", 1, "2500.95");
li[1] = new LineItem("Phasor", 3, "7250.95");
PurchaseOrder po = new PurchaseOrder(
"NCC-1701",
Calendar.getInstance(),
new Address("Sam Ruby", "Home", "Raleigh", "NC", "27676"),
new Address("Lou Gerstner", "Work", "Armonk", "NY", "15222"),
li
);
// issue the request
String receipt = (String) call.invoke( new Object[] {po} );
System.out.println(receipt);
} catch (Exception e) {
System.out.println("Buy failed: " + e);
throw e;
}