接口工厂
/**
* <pre>
* Title: 接口工厂
* </pre>
*/
public abstract class AbstractInterfaceFactory {
protected static final Logger logger = Logger
.getLogger(AbstractInterfaceFactory.class.getName());
public static AbstractInterfaceFactory getInstance(){
return new DefaultInterfaceFactory();
}
/** 私有化, */
protected AbstractInterfaceFactory(){}
public <T> T getWebService(Class<T> oldInterface) {
InterfaceHandler intr = new InterfaceHandler(this);
Object bufferedInter = Proxy.newProxyInstance(getClass()
.getClassLoader(), new Class[] { oldInterface }, intr);
return (T) bufferedInter;
}
/** 子类实现 */
protected abstract Object remoteCall(String methodName, Object[] args);
/** 代理类 */
private static final class InterfaceHandler implements InvocationHandler {
private AbstractInterfaceFactory factory;
public InterfaceHandler(AbstractInterfaceFactory factory) {
this.factory = factory;
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String remoteMethodName = method.getName();
logger.info("开始调用接口:" + remoteMethodName);
Object rst = factory.remoteCall(remoteMethodName, args);
logger.info("完成调用");
return rst;
}
}
/** 静态工厂的默认实现 */
private static final class DefaultInterfaceFactory extends AbstractInterfaceFactory {
protected Object remoteCall(String methodName, Object[] args) {
logger.info("远程方法调用中.....");
return methodName;
}
}
}
实际接口
/**
*
* <pre>
* Title: 任意定义的两个接口
* </pre>
*/
public interface MyInterface {
public String getVersion();
public String doJob();
}
测试类
public class testInterfaceFactory {
public static void main(String[] args) {
AbstractInterfaceFactory factory = AbstractInterfaceFactory.getInstance();
MyInterface intr = factory.getWebService(MyInterface.class);
System.out.println("获取版本:" + intr.getVersion());
intr = factory.getWebService(MyInterface.class);
System.out.println("doJob:" + intr.doJob());
}
}
运用:远程调用WebService时,可以考虑使用。
分享到:
相关推荐
webservice接口调用实例,经个人验证可用
调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...
java 调用https发布的webservice接口实例及axis包及详细说明
JAVA调用WEBSERVICE接口
java调用webservice接口方法,直接AXIS调用远程的web service
本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。
Java调用.NET的WebService接口实例,jar包删减到三个,干净清爽,里面包含注多注释和图解,搞了半天的家伙拿出来与大家分享,无任何BUG,修改里面的参数即可直接运行,对于这种好东西,花了半天时间10分不算高,重在...
java调用webservicejava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava...
.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子
java调用json参数的webservice 涉及技术: JAVA JSON WEBSERVICE
java调用webservice接口案例,精简,service调用webservice接口案例;不用生成一堆代码,逻辑清晰
适合有spring框架的javaEE平台,出自spring的HttpInvokerServiceExporter导出器,依赖Spring.jar
java调用webservice接口方法.rar
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用...
springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;
纯java调用ws-security+CXF实现的webservice安全接口
java使用XFire调用webService接口
Java中如何通过https调用Webservice接口
最近项目中遇到需要去掉老系统的webservice服务中的insert方法,找了很久,发现这样最简单,实测有效!!!