`
hwei_344370758
  • 浏览: 21440 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

axis2入门

 
阅读更多
1、新建web项目,结构如下
   Axis2
      | src
      | WebRoot
      |   | WEB-INF
      |   |   |lib
      |   |   |web.xml
      |   | index.jsp
   将axis2-1.6.0-war.zip解压至tomcat的webapps目录,启动tomcat后会自动解压axis2.war
   项目,将axis2工程下axis2-web拷贝至WebRoot下,同时将axis2中lib目录下的jar包全部
   拷贝至项目中lib下,保留如下文件即可,目录结构如下
   Axis2
      | src
      | WebRoot
      |   | axis2-web
      |   |   | css
      |   |   | images
      |   |   | include
      |   |   | index.jsp
      |   |   | listServices.jsp
      |   | WEB-INF
      |   |   | lib
      |   |   | web.xml
      |   | index.jsp
2、在web.xml中添加如下代码
    <servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、新建HelloService.java类,代码如下:
package com.siven.axis2.service;
public class HelloService
{
    public String sayHello()
    {
        return "hello";
    }

    public String sayHelloToPerson(String name)
    {
        if (name == null)
        {
            name = "nobody";
        }
        return "hello," + name;
    }
}
4、在项目WEB-INF目录下新增如下目录及文件,结构如下
   Axis2
      | src
      | WebRoot
      |   | axis2-web
      |   |   | css
      |   |   | images
      |   |   | include
      |   |   | index.jsp
      |   |   | listServices.jsp
      |   | WEB-INF
      |   |   | lib
      |   |   | services
      |   |   |    |MyService
      |   |   |    |  |META-INF
      |   |   |    |  | | services.xml
      |   |   | web.xml
      |   | index.jsp
    services.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="helloService">
<description>Web Service例子</description>
<parameter name="ServiceClass">com.siven.axis2.service.HelloService</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、将Axis2项目发布至tomcat中,启动tomcat,在浏览器中输入:
   http://localhost:8888/Axis2/services/listServices
   如果看到如下界面,则证明Service发布成功
   Available services

   helloService
   Service Description : helloService
   Service EPR : http://localhost:8888/Axis2/services/helloService
   Service Status : Active

   Available Operations
      sayHello
      sayHelloToPerson

6、以下是客户端调用代码
public static void invokeSayHello() throws AxisFault
    {
        // 使用RPC方式调用WebService
        RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getOptions();
        // 指定调用WebService的URL
        EndpointReference targetEPR = new EndpointReference("http://localhost:8888/Axis2/services/helloService");
        options.setTo(targetEPR);
        // 指定sayHelloToPerson方法返回值的数据类型的Class对象
        @SuppressWarnings("rawtypes")
        Class[] classes = new Class[]{String.class};
        // 指定要调用的sayHelloToPerson方法及WSDL文件的命名空间
        QName opAddEntry = new QName("http://service.axis2.siven.com", "sayHello");
        // 调用sayHelloToPerson方法并输出该方法的返回值
        System.out.println(serviceClient.invokeBlocking(opAddEntry, new Object[]{}, classes)[0]);  
    }
   
    public static void invokeSayHelloToPerson() throws AxisFault
    {
        // 使用RPC方式调用WebService
        RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getOptions();
        // 指定调用WebService的URL
        EndpointReference targetEPR = new EndpointReference("http://localhost:8888/Axis2/services/helloService");
        options.setTo(targetEPR);
        // 指定sayHelloToPerson方法的参数值
        Object[] opAddEntryArgs = new Object[]{"siven"};
        // 指定sayHelloToPerson方法返回值的数据类型的Class对象
        @SuppressWarnings("rawtypes")
        Class[] classes = new Class[]{String.class};
        // 指定要调用的sayHelloToPerson方法及WSDL文件的命名空间
        QName opAddEntry = new QName("http://service.axis2.siven.com", "sayHelloToPerson");
        // 调用sayHelloToPerson方法并输出该方法的返回值
        System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
    }
   
7、以下是Stub调用方式:
   前提:安装好Axis2,并配置环境变量
   AXIS2_HOME:Axis2安装目录
   在cmd下运行如下命令:
   %AXIS2_HOME%\bin\wsdl2java -uri http://localhost:8888/Axis2/services/helloService?wsdl -p com.siven.axis2.client -s -o stub
 
其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。
-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。
  在执行完上面的命令后,就会发现在当前目录下多了个stub目录,
  在stub/src/client目录可以找到一个HelloServiceStub.java文件,

  调用代码:
HelloServiceStub stub = new HelloServiceStub();
            HelloServiceStub.SayHelloToPerson gg = new HelloServiceStub.SayHelloToPerson(); 
            gg.setName("siven");
            System.out.println(stub.sayHello(new HelloServiceStub.SayHello()).get_return());
            System.out.println(stub.sayHelloToPerson(gg).get_return());
分享到:
评论
1 楼 z543jie 2013-10-17  

相关推荐

    axis2入门及简单例子

    Axis2 入门及简单例子 Axis2 是一个基于 Java 的 Web 服务框架,它提供了一个灵活、可扩展、可靠的方式来创建、部署和管理 Web 服务。Axis2 是 Apache 软件基金会的一个开源项目,是基于 SOAP 和 WSDL 的 Web 服务...

    axis2入门学习程序

    用于入门学习axis2,部署好即可用! //初始化文件 AxisProjectStub stub = new AxisProjectStub(); AxisProjectStub.Showname request = new AxisProjectStub.Showname(); request.setName("张三"); String name =...

    Axis2包括axis2入门文档,新手教程,Myeclipse下的安装

    本压缩包文件包含了关于Axis2的入门文档、新手教程以及在MyEclipse集成开发环境下的安装步骤,非常适合初学者进行学习。 1. **Axis2入门文档**:Axis2的核心概念包括模块、服务、消息引擎和服务部署。模块是Axis2的...

    axis2入门实例

    **标题:“Axis2入门实例”** 在IT领域,特别是Web服务开发中,Apache Axis2是一个广泛应用的SOAP(简单对象访问协议)服务器和客户端框架。它提供了高性能、灵活且可扩展的环境来创建和部署Web服务。这篇教程将带...

    webservice的Axis2入门教程java版

    通过这篇Java版的Axis2入门教程,我们了解到如何轻松地利用Axis2构建和发布WebService,无需繁琐的配置文件。这种简化的方法使得开发人员可以更加专注于服务逻辑,而不用过于关心服务的底层实现。同时,由于Axis2的...

    AXIS2 入门文档

    ### AXIS2 入门文档知识点概述 #### 一、AXIS2 概述 - **定义**:AXIS2作为Apache Axis的后继版本,旨在提供一个更为灵活、高效且易于扩展的SOAP引擎。 - **架构特点**: - 基于全新的体系结构设计,与之前的Axis1...

    AXIS2入门+进阶+webservice实例

    本资料集合包括了“AXIS2入门”、“AXIS2进阶”以及一个具体的“WebService实例”,旨在帮助初学者和有经验的开发者深入理解AXIS2及其在Web服务中的应用。 入门篇可能涵盖了以下内容: 1. **AXIS2基础概念**:介绍...

    Axis2 入门

    这个简明教程将引导你入门Axis2的使用。 首先,我们创建一个名为`StockQuoteService`的Java类,它包含了获取股票价格(`getPrice`)和更新股票价格(`update`)的方法。这里的`StockQuoteService`是一个简单的POJO...

    SOAP与AXIS2入门教程附带实例

    本入门教程将帮助你理解如何使用AXIS2来创建、发布和调用SOAP Web服务。首先,你需要了解AXIS2的架构,它主要由以下几个部分组成: 1. **Service Archive (AAR)**:这是AXIS2中服务的打包格式,类似于Java的JAR文件...

    Axis2_入门.doc

    总结来说,Apache Axis2入门涉及创建一个简单的Java服务类,生成描述服务的WSDL文件,构建服务的部署档案,配置服务的行为,并最终在服务器上部署服务以供使用。这个过程展示了如何使用Axis2框架来快速开发和部署Web...

    Axis2-study.zip_axis2_doc

    描述中的"Axis2教程.doc"确认了这个文件包含了一个Axis2的入门教程,适合想要学习或了解Axis2基础的人群。 **Axis2基础知识** Axis2是基于Apache Axis1的一个全新设计和实现,它是用Java语言编写的,用于处理SOAP...

    axis2开发Web Services入门

    ### Axis2 开发 Web Services 入门 #### 知识点概述 本文旨在介绍如何使用 Axis2 开发 Web Services 的全过程,包括环境搭建、插件安装等基础准备工作,以及具体的开发流程与实例演示。 #### 1. 环境搭建 ##### ...

    Axis2创建web service快速入门

    本教程将引导你快速入门,掌握使用Axis2创建Web服务的基本步骤。 **一、了解Axis2** Axis2是Axis1的下一代产品,它提供了更强大的功能和更高的性能。Axis2基于模块化架构,支持多种传输协议(如HTTP、HTTPS、SMTP...

    Axis实践之Axis入门

    【Axis实践之Axis入门】 Axis是一个流行的开源SOAP(Simple Object Access Protocol)库,它允许开发者在Java平台上构建和部署Web服务。本篇文章将带你逐步了解如何在Tomcat服务器上安装和配置Axis,以便开始你的...

Global site tag (gtag.js) - Google Analytics