`
dzqlhh
  • 浏览: 61141 次
社区版块
存档分类
最新评论

webservice之axis介绍1

阅读更多

Axis全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的,有java版的实现,也有c++版的实现,其前身最早是IBM的SOAP4J,后来捐给Apache后改名Apache SOAP,也就是支持SOAP1.1的那个版本,到现在的AXIS已经是第三代了,AXIS对Apache SOAP的改进有很多,比如用SAX代替以前的DOM,增加对WSDL的支持,支持SOAP1.2等等

使用axis很easy,在apache网站上把axis下载了后(最新版本1.2.1),把%AXIS_HOME%\webapps\axis整个目录copy到tomcat的webapps目录下面,启动tomcat,浏览器中输入http://localhost:8080/axis就可以了

上面说的只是axis运行起来了,要想布置自己的webservice,axis支持两种方法:一种是用JWS(Java Web Service),好处是只要有源码比如说Hello.java,把他改成Hello.jws后放到%TOMCAT_HOME%\webapps\axis目录下面就搞定,浏览器里面输入http://localhost:8080/axis/Hello.jws就可以了,不足的地方是能配置的地方有限(比如说Hello.java里面的所有public非static方法都会暴露),很多东西没办法弄;第二种方法就是使用wsdd(web service deploy description),这个就是在TOMCAT_HOME%\webapps\axis\WEB-INF目录下写一个deploy.wsdd和undeploy.wsdd文件,然后通过java org.apache.axis.client.AdminClient deploy.wsdd就搞定了,卸载这个webservice就用org.apache.axis.client.AdminClient undeploy.wsdd,客户端输入http://localhost:8080/axis/services/Hello就可以了

介绍了部署webservice的两种方法后,下面说说客户端的访问方式,也有两种,一种是通过axis实现的java里面的JAX-RPC进行动态调用,另外一种就是通过服务器端产生的wsdl文件利用WSDL2Java工具生成Client Stub后访问。通过JAX-RPC的比较简单,需要提供的有SOAP router URL,service namespace,operation name,operation parameter types,operation return types,看看下面这个例子就明白了:

    public SOAPWrapper() {
        String location = "http://localhost:8080/axis/services/BookService";
        try {
            Service service = new Service();
            call = (Call)service.createCall();
            call.setTargetEndpointAddress(new url(/location));
        } catch (Throwable t) {
            handleError("SOAPWrapper (constructor) had an Exception.",t);
        }
    }

    public void create(Book book) {
        try {
            call.removeAllParameters();
            call.setOperationName("create");
            call.addParameter("arg1",qn,ParameterMode.IN);
            call.setReturnType(XMLType.AXIS_VOID);
            call.invoke(new Object[] {book});
            return;
        } catch (Throwable t) {
            handleError("SOAPWrapper (create) had an Exception.",t);
            return;
        }
       
    }

程序中的Call和Service是对JAX-RPC中Call和Service的具体实现:org.apache.axis.client.Call implements javax.xml.rpc.Call,org.apache.axis.client.Service implements javax.xml.rpc.Service

第二种客户端的方法就是利用WSDL2Java产生Client stub后通过stub调用,WSDL2Java的操作对象是service所对应的wsdl文件,这个文件怎么产生呢?一种方法前面是由axis自动产生,如前面服务器端的配置所说,无论通过jws或是wsdd的方式,axis都会产生相应的wsdl;还有一种方式就是利用Java2WSDL对java源文件进行操作也可以产生相应的wsdl文件。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1546269

分享到:
评论

相关推荐

    WebService之axis2案例

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

    webService—Axis实例webService—Axis实例webService—Axis实例

    webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例

    SpringBoot开发WebService之Axis示例

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

    webservice之axis实例,axis复杂对象

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

    Webservice之Axis高级编程

    Webservice之Axis高级编程 Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如,可以使用WebService来发布服务端 Java类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种...

    WebService之Axis2经典教程

    相比于其前身Axis1.x,Axis2进行了全面的重设计,提供了更多的特性和更好的性能表现。此外,Axis2还支持多种Web服务规范,包括但不限于SOAP 1.1/1.2、WSDL、WS-Security等,同时也支持RESTful风格的服务。 **1.2 ...

    WebService之Axis2实例

    Axis2是Apache软件基金会的Web服务引擎,它是Axis1.x的下一代产品,提供了更高效、可扩展的架构。Axis2支持SOAP 1.1和1.2,同时具备WS-I Basic Profile兼容性,可以处理复杂的Web服务交互。 二、环境搭建 在开始...

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

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

    WebService大讲堂之Axis2

    WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2

    axis2例子 webservice axis2 示例

    axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例

    WebService-Axis2 详细讲解

    1. **消息处理**:Axis2能够处理SOAP 1.1和1.2消息,同时支持RESTful服务。它使用了模块化的架构,使得添加新的消息格式变得更加容易。 2. **模块化**:Axis2的设计基于模块化概念,每个模块都有特定的功能,如MTOM...

    WebService之AXIS传递javabean.7z

    在Java世界中,当我们需要通过WebService传递复杂的数据结构时,例如一个对象或javabean,AXIS提供了很好的支持。javabean是一种Java类,遵循特定的命名和设计规则,用于封装数据和提供访问这些数据的方法,它们常...

    WebService之Axis2介绍与入门

    **WebService之Axis2介绍与入门** 在Web服务领域,Axis2是Apache软件基金会开发的一个开源Web服务框架,它是Axis1.x的升级版本,提供了一种更高效、更灵活的方式来创建和部署Web服务。本篇文章将深入探讨Axis2的...

    WebService Axis初学者

    1. WebService简介: WebService是一种通过互联网交换业务逻辑的标准化方式,允许应用程序之间进行交互。它基于开放标准,如WSDL(Web服务描述语言)定义服务接口,SOAP协议进行数据交换,UDDI(统一描述、发现和...

    java webservice之axis2与spring集成(二)

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

    WebService大讲堂之Axis2.pdf

    Axis2是Apache软件基金会提供的一款高性能、轻量级的WebService引擎,它是在Axis1.x的基础上重新设计的产物,不仅支持SOAP1.1和SOAP1.2协议,还扩展了对RESTful WebService的支持,以及Spring框架和JSON技术的集成。...

    axis2+spring webservice

    1. **Apache Axis2 Web服务引擎**:了解其架构,包括模块化设计,消息处理器,以及WSDL(Web服务描述语言)到Java代码的编译过程。 2. **Spring框架集成**:学习如何使用Spring的`Axis2ServiceBean`或`Axis2...

    WebService之Axis2教程

    ### WebService之Axis2教程知识点总结 #### 一、Axis2简介及应用场景 - **Axis2定义**:Axis2是一款高性能、轻量级且灵活的Web服务引擎,它基于Apache软件基金会开发,作为Apache Axis 1.x的下一代产品,不仅支持...

    webservice之axis2

    标题中的“webservice之axis2”指的是使用Axis2来实现Web服务。 在描述中,我们看到了实现Web服务的步骤,包括服务端和服务端客户端的创建。以下是对这些步骤的详细解释: 1. **创建Web服务工程**:首先,我们需要...

Global site tag (gtag.js) - Google Analytics