`

基于Axis2开发WebService的HelloWorld(一)

 
阅读更多

1.HelloWorld做了些什么?
HelloWorld功能非常简单,在客户端输入你的姓名,本例中为Leo。参数传递到服务器端后,经过处理将返回name+"HelloWorld!",本例中为Leo HelloWorld!

2.服务器端文件HelloWorld.java

package sample;
 
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
 
public class HelloWorld {
     //读取client端getSayHelloOMElement()方法传递的参数in。
    public OMElement sayHello(OMElement in){
         //将in转换为String。
       String name=in.getText();
         String info=name+"HelloWorld!";
         //创建response SOAP包。
       OMFactory fac=OMAbstractFactory.getOMFactory();
         // OMNamespace指定此SOAP文档名称空间。
       OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
         //创建元素sayHello,并指定其在omNs指代的名称空间中。
       OMElement resp=fac.createOMElement("sayHelloResponse",omNs);
         //指定元素的文本内容。
       resp.setText(info);
         return resp;
    }
} 

 

3.services.xml部署文件
services.xml

<?xml version="1.0" encoding="UTF-8"?>
//下面定义服务名
<service name="HelloWorld">
<description>
  This is a sample Web Service.
</description>
// ServiceClass指定Java Class的位置,即实现服务的类。
<parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter>
// operation 与Java Class中方法名对应。
<operation name="sayHello">
// messageReceiver看下文注解。
  <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service> 

 

注解:消息交换模式。
目前Axis2支持三种模式:In-Only、Robust-In和In-Out。In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。本例使用In-Out模式。

 

4.客户端文件TestClient.java

TestClient.java
package example.client;
 
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.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
 
public class TestClient {
    // targetEPR指定打包的Service(.aar文件)在容器中的物理位置。
       private static EndpointReference targetEPR=new EndpointReference
         ("http://localhost:8080/axis2/services/HelloWorld");
       public static OMElement getSayHelloOMElement(){
        //创建request SOAP包。
              OMFactory fac=OMAbstractFactory.getOMFactory();
        // OMNamespace指定此SOAP文档名称空间。
              OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
        //创建元素sayHello,并指定其在omNs指代的名称空间中。
              OMElement method=fac.createOMElement("sayHello",omNs);
        //指定元素的文本内容。
              method.setText("Leo");
              return method;
       }
       public static void main(String[] args){
              try{
                     Options options=new Options();
                     options.setTo(targetEPR);
                     ServiceClient sender=new ServiceClient();
                     sender.setOptions(options);
                     OMElement sayHello=TestClient.getSayHelloOMElement();
            //发出request SOAP,
//同时将得到的远端由sayHello方法返回的信息保存到result。
//通过services.xml能准确找到sayHello方法所在的文件。
                     OMElement result=sender.sendReceive(sayHello);
              }
              catch(Exception axisFault){
                     axisFault.printStackTrace();
              }
       }
} 

 

5.Axis2简介
Apache Axis2 是Axis的后续版本,是新一代的SOAP引擎。Axis2的主要特点有:
1)采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。

2)支持不同的消息交换模式。目前Axis2支持三种模式:In-Only、Robust-In和In-Out。In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。

3)提供阻塞和非阻塞客户端 API。

4)支持内置的 Web服务寻址 (WS-Addressing) 。

5)灵活的数据绑定,可以选择直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定方法,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。

6)新的部署模型,支持热部署。

7)支持HTTP,SMTP,JMS,TCP传输协议。

8)支持REST (Representational State Transfer)。

6.Axis2 支持的规范包括:
-SOAP 1.1 and 1.2
-Message Transmission Optimization Mechanism (MTOM), XML Optimized Packaging (XOP) and SOAP with Attachments
-WSDL 1.1, including both SOAP and HTTP bindings
-WS-Addressing (submission and final)
-WS-Policy
-SAAJ 1.1
有关Axis2更加详细的介绍,可以访问Axis2网站http://ws.apache.org/axis2/。

分享到:
评论

相关推荐

    Axis开发WebService Helloworld实例

    在本实例中,我们将深入探讨如何使用Axis开发一个简单的"Hello World" WebService。这个教程是基于网上流行的一个文档,但原文档存在四处错误,我已经进行修正并经过Eclipse IDE的调试验证,确保其正确无误。 首先...

    基于axis2的webservice

    创建一个简单的"HelloWorld"服务,定义一个接口,实现该接口的类,然后通过Axis2工具生成aar文件并部署到Axis2服务器。客户端通过SOAP请求调用服务,获取返回的"Hello, World!"信息。 总结,基于Axis2的Web服务...

    Axis2开发webservice总结.doc

    - **客户端业务开发**:在理解了基本概念和配置好环境后,可以开始开发简单的业务实例,例如“HelloWorld”服务,以熟悉整个流程。 3. **工具下载与安装** - **JDK**:访问Java官方网站下载JDK 1.5,按照提示进行...

    axis2开发webservice心得

    这是因为Axis2作为一个基于Java的WebService框架,通常被部署在Tomcat等应用服务器上。 - **配置Axis2:** 将Axis2的相关文件解压到`Tomcat/webapps`目录下。例如,可以将解压后的文件放置于`Tomcat5.5\webapps\axis...

    我的webservice Hello world-axis

    标题 "我的webservice Hello world-axis" 指的是一个基于Apache Axis实现的Web服务示例,主要用于初学者学习和理解Web服务的基本概念。Apache Axis是一个开源的SOAP(简单对象访问协议)工具包,用于创建和部署Web...

    Axis2搭建WebService服务端demo

    在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...

    axis2应用指南及helloworld代码--axis2开发之个人开发必备!!

    axis2服务端的各种写法及客户端的用法及helloworld代码,包配环境部署文件axis2.war 其中 services文件 - - &lt;!-- 实现的服务类,locked 锁定 xsd:false 一种格式 --&gt; ...

    Axis2 创建 webservice 操作手册

    **Axis2创建Web服务操作手册** 在IT行业中,Web服务是一种常见的软件接口,它允许不同...了解这些步骤对于开发和维护基于Web服务的分布式系统至关重要。通过实践,你可以熟练掌握使用Axis2创建和管理Web服务的技能。

    myeclipse8.5使用axis2插件开发webservice服务并调用

    ### 使用MyEclipse 8.5与Axis2插件开发WebService服务及调用详解 #### 一、前言 在Web开发中,WebService作为一种重要的分布式系统实现方式,被广泛应用于不同平台之间的通信。本文将详细介绍如何利用MyEclipse ...

    axis2 webservice开发总结文档

    本文档通过一个简单的 HelloWorld 示例来展示如何搭建基于 Axis2 的 WebService。 #### 二、环境搭建 1. **下载 Axis2 SDK** 首先,需要下载 Axis2 的 SDK,并从中提取 lib 文件夹中的库文件。这些库文件是 Axis...

    axis2开发Web Services入门

    通过以上步骤,我们完成了基于 Axis2 的 Web Services 开发环境的搭建,并成功创建了一个简单的 Web Service 示例。此过程不仅涵盖了软件开发的基础环境配置,还涉及了 Web Services 的具体开发和部署流程。对于初学...

    axis2+myeclipse开发webService

    Web服务的核心技术之一就是WebService,而Axis2是Apache软件基金会提供的一个高效、可扩展且灵活的Web服务引擎,常用于构建和部署Web服务。MyEclipse是一款强大的集成开发环境(IDE),特别适合Java EE项目的开发,...

    Axis2进行WebService开发

    本篇文章将详细探讨如何使用Apache Axis2这一强大的工具进行WebService的开发。 Apache Axis2是Apache软件基金会的一个开源项目,它是用于构建和部署Web服务的第二代引擎。Axis2以其高性能、模块化和灵活的架构著称...

    axis2实现webservice请求

    当我们谈论 Axis2 时,我们指的是一个高效、灵活且强大的Web服务框架,它是Apache软件基金会开发的。Axis2 是用于构建和部署Web服务的第二代产品,它基于 Axis1 提供了许多改进和新特性。 **Axis2 概述** Axis2 是...

    利用Axis编写简单的WebService

    java org.apache.axis.utils.Java2WSDL -l http://localhost:8080/HelloWorld -n http://example.com/HelloWorld -s HelloWorld -S HelloWorldServer -o HelloWorld.wsdl HelloWorld.class ``` 4. **部署WebService...

    java axis webservice 开发实例

    Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...

    基于wsdl进行webservice接口开发打印helloworld.rar

    在这个“基于wsdl进行webservice接口开发打印helloworld”的案例中,我们将深入理解WSDL在Web Service接口开发中的作用,并了解如何通过它来实现简单的服务调用。 首先,我们需要理解WSDL文档的基本结构。WSDL文档...

    axis1.4开发webservice详细实例

    在本文中,我们将深入探讨如何使用Axis1.4版本来开发Web服务,这是一个基于Java的开源工具,专门用于创建和部署Web服务。我们将通过一个详细实例来阐述整个过程,包括Web服务的发布和客户端调用。 一、 Axis1.4简介...

    axis2 axis webservice web 服务

    例如,你可以创建一个简单的HelloWorld服务: ```java public class HelloWorldImpl { public String sayHello(String name) { return "Hello, " + name; } } ``` 然后使用Axis2工具生成相应的服务描述文件和服务...

Global site tag (gtag.js) - Google Analytics