`

Axis、Axis2、CXF调用WebService的几种方式

阅读更多
第一种:
Axis调用webService:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement;
(注意这里引用的包不是axis2是axis)

public static String ask(String url,String method,Object[] params){
String result = null;
try {
            Service service = new Service();

            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(url));
        
            call.setProperty(Call.CONNECTION_TIMEOUT_PROPERTY, new Integer(
60 * 60000));
call.setTimeout(new Integer(60 * 60000));
            call.setOperationName(method);//WSDL里面描述的接口名称

            result = (String)call.invoke(params);

} catch (Exception e) {
log.error("调用webservice接口异常");
e.printStackTrace();
}
return result;
}


第二种:
axis2调用webService
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.rpc.client.RPCServiceClient;

(注意这里引用的是axis2的包)

    public void testRPC(){
        try{
            RPCServiceClient client = new RPCServiceClient();
            Options options = client.getOptions();
//            String url = "http://localhost:8080/axis2/services/HelloWebService?wsdl";
            String url = "http://localhost:8089/webserviceServer/TestService?wsdl";
            EndpointReference end = new EndpointReference(url);
            options.setTo(end);
            Object[] obj = new Object[]{"tom"};
             Class<?>[] classes = new Class[] { String.class }; 
            QName qname = new QName("http://testClick", "sayHello");
            String result = (String) client.invokeBlocking(qname, obj,classes)[0];
            System.out.println(result);
        }catch(AxisFault e){
            e.printStackTrace();
        }
    }

第三种:

import javax.xml.namespace.QName;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.rpc.client.RPCServiceClient;
(引入的包同第二种一样)
    public void testOMElement(){
        try{
            ServiceClient sc = new ServiceClient();
            Options opts = new Options();
            String url = "http://localhost:8080/axis2/services/HelloWebService?wsdl";
            EndpointReference end = new EndpointReference(url);
            opts.setTo(end);
            opts.setAction("sayHello");
            sc.setOptions(opts);
            
            OMFactory fac = OMAbstractFactory.getOMFactory(); 
            OMNamespace omNs = fac.createOMNamespace("http://testClick", ""); 
            OMElement method = fac.createOMElement("sayHello",omNs); 
            OMElement value = fac.createOMElement("name",omNs);
            value.setText("admin");
            method.addChild(value);
            OMElement res = sc.sendReceive(method);
            res.getFirstElement().getText(); 
            System.out.println(res.getFirstElement().getText());
        }catch(AxisFault e){
            e.printStackTrace();
        }
    }


CXF调用webService:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
String cvsUrl = "http://xxxxxx?wsdl";
Client client = dcf.createClient(cvsUrl);
String params = "{\"username\":\""+config.getDataAcc()+"\",\"password\":\""+config.getDataPwd()+"\",\"jobName\":\""+holeTask.getTaskName()+"\"}";
objects = client.invoke("generalAssetResult", params);

参考文档:
http://www.2cto.com/kf/201311/257446.html


分享到:
评论

相关推荐

    axis2发布webservice和调用axis2服务接口

    1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...

    webService(基于cxf)的完整例子

    CXF提供了一种从代码直接生成Web服务的方式,支持JAX-WS和JAX-RS标准,使得开发人员可以轻松地创建符合WSDL(Web服务描述语言)规范的服务。 2. **JAX-WS和JAX-RS**:JAX-WS是用于构建SOAP Web服务的标准,而JAX-RS...

    Axis2教程和java调用webservice的各种方法总结

    3. "java 调用webservice的各种方法总结 - 比较详细且简单的.mht":这个文件应该汇总了多种Java调用Web服务的方法,比如使用JAX-WS、Apache CXF或Axis2等库,可能包括代码示例和优缺点分析。 4. "java调用...

    WebService调用的几种方式

    本文将深入探讨在Java环境中调用WebService的五种主要方式:Axis、CXF、HttpClient、MyEclipse反向生成以及XFire。 1. Axis:Apache Axis是最早且广泛使用的SOAP库,用于创建和消费Web服务。使用Axis调用WebService...

    webservice axis2 cxf jar包及简单实例

    本文将深入探讨两种流行的Java Web服务框架——Axis2和CXF,并提供一个简单的实例来帮助理解它们的工作原理和使用方法。 首先,让我们了解一下`Axis2`。Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的...

    axis cxf 创建webservice

    - **CXF**: 也是Apache的一个项目,它提供了一种简单的方式来构建和调用RESTful和SOAP Web服务。 #### 开发环境准备 - **IDE**: Eclipse (以Eclipse 3.4为例) - **工具库**: - Axis2 (本例采用版本1.4.1) - ...

    cxf与axis2区别

    CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2框架的区别,以帮助开发者...

    Axis1,Axis2,Xfire,CXF区别

    Axis1, Axis2, Xfire, CXF 是四种常用的WebService框架,它们之间有着不同的特点和应用场景。本文将对这四种框架进行详细的比较和分析,以帮助开发者选择合适的框架。 XFire 是一种新一代的 WebService 平台,它...

    Java动态调用webService,axis2动态调用webService

    本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...

    webservice :spring 3+cxf3.4服务方,AXIS1.4请示方调用

    以上步骤详细介绍了如何使用Spring 3 + CXF 3.4搭建WebService服务端,并通过Axis 1.4客户端进行调用的过程。通过这种方式,可以实现不同技术栈之间Web服务的有效交互。在实际应用中,还需要注意安全性和性能优化等...

    Java调用CXF WebService接口的两种方式实例

    Java调用CXF WebService接口的两种方式实例 Java调用CXF WebService接口是Java开发者在开发过程中经常遇到的问题。今天,我们将讨论Java调用CXF WebService接口的两种方式实例,即静态调用和动态调用。 静态调用 ...

    axis调用webservice接口所需jar包.rar

    axis调用第三方webservice接口所需的jar包,包括axis-1.4.jar,axis-jaxrpc-1.3.jar,axis-jaxrpc-1.4.jar,commons-discovery-0.5.jar,commons-logging-1.2.jar,cxf-rt-databinding-jaxb-3.3.1.jar,javax.mail-...

    WebService Axis和XFire(CXF)的开发流程

    本篇主要介绍两种常用的WebService框架——Axis和XFire(现已被CXF合并)的开发流程。 1. **Axis**:Axis是Apache软件基金会开发的开源SOAP WebService框架,它支持多种编程语言,如Java、Python等。Axis以其良好的...

    Axis-cxf-WebService.zip

    本示例探讨了两种常见的Java WebService实现方式:Apache Axis和Apache CXF,它们都是开源的SOAP(简单对象访问协议)和RESTful服务框架。以下是关于这两种技术的详细解释及其在实际应用中的使用。 Apache Axis是最...

    关于WebService的实例及相关axis/apache-cxf的应用

    在本文中,我们将深入探讨WebService的原理以及如何利用Apache Axis和Apache CXF这两个流行的Java框架来实现和消费WebService。 首先,理解WebService的基础概念至关重要。WebService是一种通过互联网进行通信的...

    WebService:Axis客户端调用需要身份验证的CXF服务

    要深入学习这个主题,可以参考博客“WebService:Axis客户端调用需要身份验证的CXF服务”。这个博客很可能详细解释了如何在实际代码中实现上述步骤,包括如何配置Axis客户端、如何处理认证头以及如何与CXF服务进行...

    springboot(5) 整合cxf提供webservice服务

    在本教程中,我们将深入探讨如何使用Spring Boot与Apache CXF整合来创建并提供Web服务。Spring Boot以其简化Java应用程序开发的特性而受到广泛欢迎,而CXF则是一个流行的开源框架,用于构建和消费Web服务。当我们...

    使用CXF发布WebService

    描述中的“axis连接webservice所用的jar包”提到了Apache Axis,这是一个早期的Web服务客户端工具,用于调用CXF发布的Web服务。虽然CXF也可以作为客户端,但在这里可能是为了演示或兼容性的目的,使用Axis来消费服务...

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    总结,本教程详细介绍了如何利用Spring Boot和Apache CXF搭建Web Service服务端,以及使用JAX-WS的`javax.xml.ws.Service`和Apache CXF的`JaxWsProxyFactoryBean`两种方式实现Java客户端调用。这些技能对于开发者来...

    Axis2,CXF版本学习笔记

    文件“WebService_CXF学习.doc”和“axis2_WebService_开发指南.docx”、“axis_WebService_-_开发指南.docx”应该包含了关于这两个框架的详细教程和实践案例,可以帮助你更深入地理解和应用它们。 总的来说,Axis2...

Global site tag (gtag.js) - Google Analytics