package samples.faults; import org.apache.axis.encoding.ser.BeanSerializerFactory; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import org.apache.axis.AxisFault; import org.apache.axis.utils.Options; import org.apache.axis.transport.http.SimpleAxisWorker; import org.apache.axis.description.OperationDesc; import javax.xml.rpc.ServiceFactory; import javax.xml.rpc.Service; import javax.xml.rpc.Call; import javax.xml.rpc.encoding.TypeMappingRegistry; import javax.xml.rpc.encoding.TypeMapping; import javax.xml.namespace.QName; import java.net.URL; import java.util.Map; import java.util.Iterator; import samples.faults.Employee; public class EmployeeClient { public static void main(String[] args) throws Exception { Options opts = new Options(args); String uri = "http://faults.samples"; String serviceName = "EmployeeInfoService"; ServiceFactory serviceFactory = ServiceFactory.newInstance(); Service service = serviceFactory.createService(new QName(uri, serviceName)); TypeMappingRegistry registry = service.getTypeMappingRegistry(); TypeMapping map = registry.getDefaultTypeMapping(); QName employeeQName = new QName("http://faults.samples", "Employee"); map.register(Employee.class, employeeQName, new BeanSerializerFactory(Employee.class, employeeQName), new BeanDeserializerFactory(Employee.class, employeeQName)); QName faultQName = new QName("http://faults.samples", "NoSuchEmployeeFault"); map.register(NoSuchEmployeeFault.class, faultQName, new BeanSerializerFactory(NoSuchEmployeeFault.class, faultQName), new BeanDeserializerFactory(NoSuchEmployeeFault.class, faultQName)); Call call = service.createCall(); call.setTargetEndpointAddress(new URL(opts.getURL()).toString()); call.setProperty(Call.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE); call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE); call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://faults.samples"); call.setOperationName( new QName(uri, "getEmployee") ); String[] args2 = opts.getRemainingArgs(); System.out.println("Trying :" + args2[0]); Employee emp = (Employee) call.invoke(new Object[]{ args2[0] }); System.out.println("Got :" + emp.getEmployeeID()); } }