`

java RPC方式调用axis2 webservice

 
阅读更多
  1. 所需jar包包括:
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ServiceException;
    import org.apache.axis2.AxisFault;
    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;

    除了引入的这些jar包之外,还需要axis2 下的commons-httpclient-3.1.jar包,通过该包进行webservice通信。

  2. 调用axis2服务和调用wcf服务不同,所需要传入的参数包括,webservice地址,方法名,方法参数,webservice命名空间,和返回类型,其中方法参数是一个Object数组,参数类型根据Object数组决定。源码如下:
    private static  RPCServiceClient serviceClient;
        /**
         * RPC调用AXIS2 webservice
         * @param endpoint 服务地址 如:http://192.168.0.1:2597/aixs2/services/jqservice?wsdl
         * @param localPart 方法名 如<xs:element name="Receive">
         * @param opArgs 方法参数 如Object[] opArgs = new Object[] { param }; 
         * @param namespaceURI 命名空间 如 :targetNamespace="http://server.test.com.cn">
         * @param opReturnType 返回类型 如字符串:Class[] opReturnType = new Class[] { String[].class };
         */
        public static String axis2RPCInvoke(String endpoint,String localPart,Object[] opArgs,String namespaceURI,Class[] opReturnType)
        {
            Object[] ret = null;
            try
            {
                serviceClient = new RPCServiceClient();
                Options options = serviceClient.getOptions();
                EndpointReference targetEPR = new EndpointReference(endpoint);
                options.setTo(targetEPR);
                QName opQName = new QName(namespaceURI, localPart);
                ret = serviceClient.invokeBlocking(opQName, opArgs, opReturnType);
                System.out.println(((String[]) ret[0])[0]);
            }
            catch (AxisFault e)
            {
                e.printStackTrace();
            }
            return ((String[]) ret[0])[0];
        }

     

  3. 测试方法如下:
    public static void main(String[] args)
        {
            axis2RPCInvoke("http://172.16.5.22:9090/axis2/services/MyService?wsdl", "Receive", new Object[] {"122"}, "http://lincb.com",  new Class[] { String[].class });
        }
分享到:
评论

相关推荐

    axis2客户端调用axis1服务接口

    axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...

    详解axis调用webservice实例

    1. **创建Stub(存根)**:使用Axis的wsdl2java工具,根据Web服务的WSDL文档生成Java存根类。 2. **配置**:设置任何必要的连接参数,如URL、端口等。 3. **实例化Stub**:创建存根类的实例,这通常是调用Web服务的...

    JAVA调JAVA调用webservice(axis方式).doc 用webservice(axis方式).doc

    本文将详细解析如何通过Apache Axis库在Java应用中调用WebService,具体聚焦于“JAVA调用webservice(axis方式)”这一主题。 ### Apache Axis简介 Apache Axis是一个开源的Java Web服务框架,支持SOAP协议,用于...

    利用AXIS调用webservice所需JAR包

    这一步骤通常使用`wsdl2java`命令完成。 3. **配置和初始化Stub**:配置Stub,包括设置任何必要的属性,如SOAP头或HTTP代理设置。 4. **调用服务**:通过调用Stub中的方法,你可以向Web服务发送请求并接收响应。 ...

    [JAVA]-Axis-Webservice-Demo

    2. 使用Axis发布服务:有了接口和实现后,使用Axis的`wsdl2java`工具生成服务端代码。这个工具会根据你的接口生成相应的ServerStub和服务部署文件。然后,将服务部署到Axis服务器上,通常是在Tomcat或Jetty等Servlet...

    Java WebService 简单实例 方式二(axis1直接调用方式)

    ### Java WebService 简单实例 方式二(axis1直接调用方式) #### 背景介绍 在软件开发领域,特别是在企业级应用中,Web服务作为一种标准的技术规范被广泛采用,它允许不同系统间进行通信与数据交换。Java Web ...

    axis客户端调用webservice

    java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG

    Java调用php的webservice

    Java客户端使用Apache Axis库来调用PHP Webservice服务。 ##### 1. 创建Service实例 ```java Service service = new Service(); ``` 创建一个新的`Service`对象。 ##### 2. 创建Call实例 ```java Call call = ...

    Java WebService 简单实例 方式三(axis1接口调用方式)

    本实例将介绍如何使用Apache Axis1库来创建和调用Web服务,这是一种常见的Java WebService实现方式。 一、WebService基本概念 1. WebService是一种基于XML(可扩展标记语言)的协议,它允许应用程序通过HTTP协议...

    java axis 调用C# webService所需的jar包

    2. 使用wsdl2java命令(位于axis的bin目录下)从WSDL生成Java客户端 stub类。这将根据Web服务的定义自动生成对应的Java接口和实现。 3. 在Java代码中,实例化生成的stub类,并调用相应的方法。Stub类会处理与Web服务...

    利用eclipse,axis2框架,搭建WebService服务端,以及如何调用接口的教程

    本文档将详细介绍如何利用Eclipse集成开发环境与Axis2框架来构建WebService服务端,并进一步探讨如何通过Java应用程序调用这些服务接口。通过本教程的学习,读者能够掌握基本的WebService服务端构建流程及其客户端...

    axis2 webservice开发总结文档

    通过上述步骤,我们成功地搭建了一个基于 Axis2 的 WebService 并实现了客户端调用。需要注意的是,在实际开发过程中可能还需要考虑更多的配置细节,例如安全性设置、日志记录等。此外,对于生产环境的应用,还需要...

    Axis2生成webservice客户端通用依赖包

    在Axis2框架下,生成Web服务客户端的过程相当直观,它可以帮助开发者自动创建所需的Java代码来调用服务。 1. **生成Web服务客户端**: 使用Axis2生成Web服务客户端通常涉及以下步骤: - 获取WSDL(Web服务描述...

    Java调用WebService接口的方法

    在Java中,Apache Axis库提供了用于创建和调用WebService的工具。 在Java中调用WebService接口,主要涉及以下几个步骤: 1. **创建Service对象**:`Service`是Apache Axis库中的一个类,用于初始化并管理与...

    AXIS2实现WebService的jar包

    客户端可以通过多种方式调用AXIS2发布的Web服务: - 使用AXIS2的客户端API,如Stub类,直接编程调用。 - 通过SOAP消息直接发送请求,可以使用各种HTTP客户端库,如Apache HttpClient。 - 利用AXIS2生成的客户端...

    Axis2 WebService常用功能详解

    1. **多种方式编写和发布Web服务**:Axis2支持JAX-RPC和JAX-WS规范,允许开发者选择适合他们项目的API来创建Web服务。同时,它还提供了RESTful Web服务的支持,与SOAP相比,REST更简洁,更适合轻量级的交互。 2. **...

    Axis2 Webservice端例子

    总结,Axis2 Webservice端例子旨在帮助开发者了解如何在Axis2环境下构建和发布Web服务。通过定义服务接口、实现业务逻辑、创建WSDL描述和服务打包,以及在服务器上部署和调用,我们可以掌握Axis2的核心工作原理。...

    java-webservice-axis-例子

    3. **Apache Axis的工作原理**:Axis通过JAX-RPC(Java API for XML-based Remote Procedure Calls)实现Web服务。JAX-RPC将Java方法映射到SOAP消息,反之亦然。当服务端接收到请求时,Axis会将SOAP消息解析成Java...

    最实用的axis调用webService接口所需的jar包和案例

    可以使用Axis的wsdl2java工具,或者直接在Eclipse等IDE中导入WSDL,自动生成相应的Java类。 2. 初始化代理对象:使用服务的URL和端口初始化代理对象。 3. 调用服务方法:通过代理对象调用Web服务的方法,传递参数并...

Global site tag (gtag.js) - Google Analytics