接口工厂
/**
* <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时,可以考虑使用。
分享到:
相关推荐
Java调用WebService接口方法是Java开发中常见的任务,尤其在分布式系统和跨平台通信中扮演着重要角色。这里我们主要探讨使用Apache Axis库来实现这一功能。Apache Axis是一款开源工具,它提供了Java到SOAP(简单对象...
Java调用WebService接口是Web应用程序开发中的常见任务,主要用于实现不同系统间的远程通信和数据交换。在本资料中,我们重点关注Java如何与基于SOAP(Simple Object Access Protocol)的WebService进行交互。 1. *...
- 在ASP.NET的后台代码(如`index.aspx.cs`)中,实例化WebService客户端对象,例如`localhost.HelloService local = new localhost.HelloService();`。 - 调用服务方法,例如`String s=local.getTestString("测试...
Delphi是一款强大的Windows应用程序开发工具,而Java WebService则是一种基于标准的,跨平台的远程调用技术。下面将详细阐述这个主题。 一、Java WebService简介 Java WebService是通过SOAP(Simple Object Access ...
4. **调用服务方法**:通过服务代理,你可以像调用本地方法一样调用Web服务的远程方法,并传递必要的参数。 ```java String result = port.someWebServiceMethod(param1, param2); ``` 5. **解析XML响应**:Web...
3. **实例化代理类**:创建代理类的实例,通常需要提供服务的URL。在Java中,这可能类似`MobileCodeService service = new MobileCodeService()`,然后通过`service.getMobileCodePort()`得到服务接口。 4. **调用...
- **实例化代理类**:创建代理类的实例,这个实例代表了远程的WebService服务。 - **调用服务方法**:通过代理类的实例调用Web服务提供的方法,传递参数并接收返回值。 **3. 使用JAX-WS的步骤** - **定义服务...
4. **编写Java代码**:使用生成的Java客户端 stubs,你可以实例化服务代理并调用对应的方法。例如,调用获取天气预报的方法,可能需要传入城市名称等参数。 5. **处理响应**:WebService调用后,你会接收到一个响应...
2. **初始化WebService调用**: - `url`变量存储了Web Service的URL,即服务的入口地址。 - `soapaction`变量存储了SOAP Action值,通常用于标识服务端应调用的方法。 3. **创建服务对象**:通过`new Service()`...
3. **实例化客户端和服务端代理**:使用生成的stub类,实例化服务端的代理对象。这个对象代表了与远程WebService的连接。 4. **调用服务方法**:通过代理对象,我们可以像调用本地方法一样调用远程服务的方法,传入...
这个过程涵盖了从设计服务接口、实现服务逻辑、生成WSDL文件、部署服务到创建客户端进行远程调用的整个流程。通过这种方式,开发者可以更加深入地理解Java Web Service的工作机制及其在实际项目中的应用价值。希望本...
5. **实例化代理类并调用服务**: 创建Web服务客户端代理类的实例,然后调用对应的方法,传递参数。例如,如果Web服务有一个名为`Calculate`的方法,我们可以在Java中这样调用: ```java MyWebService service =...
总的来说,Java和Axis2的结合提供了一种强大而灵活的方式来调用Web服务,允许开发者轻松地集成远程功能到自己的应用程序中。通过理解这些概念和实践,你可以更好地利用Web服务接口,提升应用的扩展性和互操作性。
Java WebService调用方式详解主要涉及两种方法:Axis和SOAP。这两种方式都是用来与Web服务进行交互,调用远程服务的方法。以下将详细介绍这两种方法。 1. Axis方式调用: Axis是Apache的一个开源项目,它提供了一...
2. **实例化客户端对象**:使用生成的代理类创建客户端对象,并通过该对象调用远程服务的方法。 - **代码示例**: ```csharp var client = new ServiceReference1.StudentServicePortTypeClient(); string ...
- **实例化代理类**:生成的代理类代表了对WebService的访问,我们需要实例化这个类,并设置必要的配置,如终结点地址。 - **调用服务方法**:通过代理类的对象调用JavaWebService中的公开方法,传入参数并接收...
在Java开发中,有时我们需要从客户端调用远程的WebService服务以获取或传递数据。本文将详细介绍如何使用Java进行WebService客户端的调用,并提供HttpGet、HttpPost、HttpSoap以及Documentation四种调用方式的示例。...
AXIS2远程调用WebService是Java开发者在进行分布式服务交互时常用的一种技术。本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这...
总结,Java调用WebService主要通过解析WSDL源码生成客户端代码,然后实例化服务代理并调用其方法实现通信。不同的工具库如Apache CXF、Axis2和JAX-WS提供了方便的方式来处理这一过程,让开发者能够专注于业务逻辑,...
然后,我们可以实例化`WebService`类,并将WSDL URL作为参数传递。最后,通过调用服务方法并监听事件来发送请求和处理响应。 - **通过AMF**:对于更高效的通信,我们可以使用BlazeDS或LCDS(LiveCycle Data ...