`
wujianjun
  • 浏览: 144079 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java webservice之axis2(一)

阅读更多

由于最近做的一个项目需要与SAP通过WebServices进行接口传输数据。所以花时间去研究了一下当前的两种WebServices框架(axis2和XFire)。期间还是碰上了不少的异常, 现在就一起来分享一下我的心得吧!

主要的步骤如下:

1:下载axis2-1.4.1-bin.zip和axis2-1.4.1-war.zip两个支持包(由于附件大小限制,大家就自己到http://ws.apache.org/axis2/download/1_4_1/download.cgi自行去下载)

2:将两个包解压,将axis2.war放到服务器的发布目录下。

3: 访问一下http://localhost:8080/axis2就可以对webservices进行管理了。登录的用户名和密码默认(admin/axis2) 可以在/WEB-INF/conf/axis2.xml 中进行配置.

4: 用eclipse建一个工程。建立一个普通的java类如下:

 

package com.wujianjun.axis2;

public class MyServices {

 public String sayHello(String name) {
  return "你好:"+ name;
 }

}

5:在src目录下建一个/src/META-INF/services.xml. 里面进行如下配置

<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
 <service name="MyService">
  <description>Service description</description>
  <parameter name="ServiceClass">
   com.wujianjun.axis2.MyServices 
     </parameter>
  <messageReceivers>
   <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
    class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
   <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
    class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
  </messageReceivers>
 </service>
</serviceGroup>

5: 将这个类利用eclipse的功能将src选中后导出成一个jar文件(service.jar)。

6: 访问http://localhost:8080/axis2进入到管理页面。再选择upload services, 再把services.jar 改成services.aar 后上传到服务器上去。再进入services页面则可看到刚发布的web services了。

7: 调用web services : 访问http://localhost:8080/axis2/services/MyService/。我们就可以看到服务器返回给我们的"你好: admin";sayHello?name=admin

客户端编程:

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;

public class TestClient {
	public static void main(String[] args) {
		try {
			ServiceClient sc = new ServiceClient();
			Options opts = sc.getOptions();
			opts.setTo(new EndpointReference("http://localhost:8080/axis2/services/MyService"));
			opts.setAction("urn:sayHello");
			OMElement res = sc.sendReceive(createPayLoad());
			System.out.println(res);
		} catch (AxisFault e) {
			e.printStackTrace();
		}

	}

	public static OMElement createPayLoad() {
		OMFactory fac = OMAbstractFactory.getOMFactory();
		OMNamespace omNs = fac.createOMNamespace("http://ws.apache.org/axis2","nsl");
		OMElement method = fac.createOMElement("sayHello", omNs);
		OMElement value = fac.createOMElement("name", omNs);
		value.setText("admin");
		method.addChild(value);
		return method;
	}

}

 

我们再讲一下services.xml配置方式:

1、第一种配置方式: 按方法名称进行配置
<operation name="methodName">
 <!--表示有参有返回值的方法-->
 <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
 <!--表示有参没有返回值的方法-->
 <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</operation>

2、第二种配置方式:
<messageReceivers>
 <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
 <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</messageReceivers>

3、普通类配置:
<service name="serviceName">
 <Description>服务的描述</Description>
 <parameter name="ServiceClass">全类名</parameter>
 <messageReceivers>
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
   class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
   class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
 </messageReceivers>
</service>

4、与Spring集成配置(web工程):
<service name="MySpringService" targetNamespace="http://www.wujianjun.org">
 <Description>测试spring与axis集成(web工程)</Description>
 <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
 <parameter name="SpringBeanName">springBeanName</parameter>
 <messageReceivers>
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
   class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
   class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
 </messageReceivers>
</service>

5、与Spring集成配置(JAVA工程):
<service name="MySpringService" targetNamespace="http://www.wujianjun.org">
 <Description>测试spring与axis集成(web工程)</Description>
 <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter>
 <parameter name="SpringBeanName">springBeanName</parameter>
 <messageReceivers>
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
   class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
   class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
 </messageReceivers>
</service>

分享到:
评论
2 楼 一地尘埃 2012-11-09  
请问   调用web services : 访问http://localhost:8080/axis2/services/MyService/。我们就可以看到服务器返回给我们的"你好: admin";sayHello?name=admin
   这里失败,搞不懂是怎么回事,求帮助
1 楼 helloJ 2010-01-28  
简单易懂,谢谢分享!

相关推荐

    java webservice之axis2与spring集成(二)

    以下是关于"java webservice之axis2与spring集成(二)"的详细知识点讲解: 1. **Spring框架**: Spring是Java领域的一个开源框架,主要用于简化企业级应用的开发。它提供了一个全面的编程和配置模型,特别强调了...

    WebService之axis2案例

    在"WebService之axis2案例"中,我们有两个关键部分:服务端(WebService_server)和客户端(WebService_client)。服务端是提供Web服务的应用程序,它定义了对外公开的接口和业务逻辑,这些接口可以通过SOAP(Simple...

    java调用webservice的axis2.jar包

    Java调用WebService是Web服务交互的一种常见方式,而Axis2是一个高效的、可扩展的Web服务框架,它在Java世界中广泛用于创建和消费Web服务。本文将深入探讨使用Axis2.jar包来调用WebService的相关知识点。 一、Axis2...

    Java Webservice Axis2 Client(含soapheader验证)

    总之,Java Webservice Axis2 Client的开发涉及到生成客户端代码、设置SOAP Header、调用服务和处理响应等多个步骤。了解这些概念和API对于构建安全、可靠的Web服务客户端至关重要。在实际项目中,确保遵循最佳实践...

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

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

    Java+Axis2调用Web Services 网络接口

    本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的软件系统,通常基于WSDL(Web Services Description Language)定义接口,SOAP...

    [JAVA]-Axis-Webservice-Demo

    【JAVA】Axis Webservice Demo详解 在Java开发中, Axis是一个强大的开源工具,它用于创建和部署Web服务。本文将详细介绍如何使用Axis进行Web服务的发布与调用,以及涉及的相关知识点。 一、Axis简介 Axis是Apache...

    WebService之Axis2实例

    WebService之Axis2实例是Web服务开发中的一个重要环节,它基于SOAP协议,允许不同平台和语言间的应用程序进行通信。本文将详细介绍Axis2实例的创建、配置和运行,以及如何利用Eclipse IDE、JDK 1.7和Tomcat 7.0进行...

    java-webservice-axis-例子

    7. **版本控制和兼容性**:虽然例子中使用的是Axis1.4,但随着技术的发展,后续有Axis2等更新版本,提供了更好的性能和更多的特性。迁移旧的Axis1服务到新版本需要考虑兼容性和改动成本。 通过理解以上概念和流程,...

    WebService之Axis2经典教程

    ### WebService之Axis2经典教程 #### 一、概述 随着信息技术的发展,Web Service作为一种重要的分布式计算模式,已经成为实现服务导向架构(SOA)的关键技术之一。Axis2作为一款流行的Web Service引擎,不仅具备高...

    基于axis2实现的webservice简单实现(客户端+服务端)。

    【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...

    SpringBoot开发WebService之Axis示例

    SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供了强大的SOAP处理能力。通过整合SpringBoot与Axis,我们可以快速构建高效...

    WebService-Axis2 详细讲解

    Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的Web Service引擎,它是Apache SOAP项目的后续产品,主要用Java语言实现。 Axis2的核心功能包括: 1. **消息处理**:Axis2能够处理SOAP 1.1和1.2消息,...

    java webservice_axis教程

    Axis2.x提供了更丰富的工具和API,使得开发和管理Java WebService更加便捷。 通过以上内容,你应该对使用Axis开发Java WebService有了全面的理解,包括基础操作和高级特性。接下来,你可以尝试创建更复杂的Web服务...

    axis2webservice接口例子

    标题中的“axis2webservice接口例子”指的是使用Apache Axis2框架创建的一个Web服务接口实例。Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个...

    axis2+spring webservice

    标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...

    webservice之axis实例,axis复杂对象

    在"webservice之axis实例,axis复杂对象"这个主题中,我们将关注以下核心知识点: 1. **SOAP与WSDL**: SOAP是一种轻量级的消息协议,用于在Web上交换结构化的和类型化的信息。WSDL则是一种XML格式,用来描述Web...

    Java-tomcat-axis2开发webservice返回json数据

    标题“Java-tomcat-axis2开发webservice返回json数据”涉及的是使用Java、Tomcat服务器以及Axis2框架来创建Web服务,并返回JSON格式的数据。这是一个常见的技术组合,用于构建RESTful API或者提供服务化接口。下面...

Global site tag (gtag.js) - Google Analytics