simplemathclient.java

来自「《JAVA WEB服务应用开发详解》代码」· Java 代码 · 共 55 行

JAVA
55
字号
//SimpleMathClient.java
package test;
import java.io.*;
import java.net.*;
import java.util.*;
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
public class SimpleMathClient
{
	public void main(String[] args) throws Exception
	{
		System.err.println("SOAP call testing");
		double value = Math.random();
        SimpleMathClient smc = new SimpleMathClient();
//调用远程的SOAP服务
double returnValue = smc.doRequest(value);
		System.err.println("the sin value of "+value +"is: "+returnValue);
	}
	public double doRequest(double value) throws Exception
{
   	 
      	 // Build the call.
     	 Call call = new Call ();
     	 //设置远程对象的URI
	call.setTargetObjectURI ("urn:test.math.sin");
	 	 //设置调用的方法名
	call.setMethodName ("getSinValue");
	//设置编码风格
          call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
	      //设置方法调用的参数
	Vector params = new Vector ();
          params.addElement (new Parameter("input", double.class, 
                                      new Double (value), null));
          call.setParams (params);
	//发送RPC请求
	Response resp = call.invoke (new URL("http://127.0.0.1:8080/soap/servlet/rpcrouter"),"");
          if (resp.generatedFault ()) 
	//远程调用出错处理
	{
                Fault fault = resp.getFault ();
		System.out.println ("the call failed: ");
                System.out.println ("  Fault Code   = " + fault.getFaultCode ());
                System.out.println ("  Fault String = " + fault.getFaultString ());
		return 0.0d;
             } 
	//调用成功,获取返回值
	else 
	{
                Parameter result = resp.getReturnValue ();
		return ((Double)result.getValue()).doubleValue();
	}
}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?