package com.bjpowernode.ws;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
* WSDL、服务端已经开发好,客户端动态调用服务端开放的服务(看不到存根、骨架,因为是动态的)
* @author Kevin
*
*/
public class MyMathCilent {
/**
* 指定服务所在的URL
*/
private static final String endPoint = "http://localhost:8080/axis/MyMath.jws?wsdl";
public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException {
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(endPoint));
/*
* 服务端的squared函数参数是int,返回是int
* new Object[] { 100 },表示传给服务端的参数,封装成Integer(因为参数只能传类类型),在服务端转化成int
* 服务端返回int,客户端封装成Integer(因为客户端只接受类类型)
*
*/
Integer result = (Integer) call.invoke("squared",
new Object[] { 100 });
System.out.println(result);
// 把获取的异常原封不动的往上抛,抛给Java虚拟机
} catch (ServiceException e) {
e.printStackTrace();
throw e;
} catch (MalformedURLException e) {
e.printStackTrace();
throw e;
} catch (RemoteException e) {
e.printStackTrace();
throw e;
}
}
}
2.WSDL、服务端已经开发好,客户端动态调用服务端开放的服务
最新推荐文章于 2021-02-13 09:22:01 发布