📄 complexinvokeclient.java
字号:
package samples.complexinvoke;
import java.io.*;
import java.net.*;
import java.util.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import org.apache.soap.encoding.*;
import org.apache.soap.encoding.soapenc.*;
import org.apache.soap.util.xml.*;
import com.ibm.www.namespace.wsif.samples.complexinvoke.types.Contact;
import com.ibm.www.namespace.wsif.samples.complexinvoke.types.Phone;
public class ComplexInvokeClient {
public static void main (String[] args) throws Exception {
if (args.length != 5) {
System.err.println ("Usage: java " + ComplexInvokeClient.class.getName () +
" SOAP-router-URL name area-code exchange number");
System.exit (1);
}
URL url = new URL (args[0]);
Phone echoPhoneData = new Phone((new Integer(args[2])).intValue(),
args[3], args[4]);
Contact echoData = new Contact(args[1], echoPhoneData);
SOAPMappingRegistry smr = new SOAPMappingRegistry();
BeanSerializer beanSer = new BeanSerializer();
// Map the types.
smr.mapTypes(Constants.NS_URI_SOAP_ENC,
new QName("http://www.ibm.com/namespace/wsif/samples/complexinvoke/types", "contact"),
Contact.class, beanSer, beanSer);
smr.mapTypes(Constants.NS_URI_SOAP_ENC,
new QName("http://www.ibm.com/namespace/wsif/samples/complexinvoke/types", "phone"),
Phone.class, beanSer, beanSer);
// Build the call.
Call call = new Call ();
call.setSOAPMappingRegistry(smr);
call.setTargetObjectURI ("urn:complex:invocationService#invocationServiceBP#caller#urn:complex:invocationService#invocationPT");
call.setMethodName ("invokeMe");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Vector params = new Vector ();
params.addElement (new Parameter("datain", Contact.class,
echoData, null));
call.setParams (params);
// make the call: note that the action URI is empty because the
// XML-SOAP rpc router does not need this. This may change in the
// future.
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: ");
System.out.println (" Fault Code = " + fault.getFaultCode ());
System.out.println (" Fault String = " + fault.getFaultString ());
System.out.println (" Fault = " + fault);
} else {
Parameter result = resp.getReturnValue ();
System.out.println (result.getValue ());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -