`

使用Axis开发Web Service程序

 
阅读更多

使用Axis开发Web Service程序
    1、新建一个Web工程,工程名为“AxisTest”。
    2、新建“lib”文件夹,然后把主要JAR包:axis.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,jaxrpc.jar,wsdl4j-1.5.1.jar,saaj.jar;可选包(发布服务及生成客户端程序是要用到的):activation.jar;mail.jar都拷贝到此“lib”文件夹下,并把主要的JAR包添加到工程的classpath中;
    3、配置“web.xml”:
    < ?xml version="1.0" encoding="UTF-8"?>
    < web-app version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    < display-name>Apache-Axis< /display-name>
    < listener>
    < listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener< /listener-class>
    < /listener>
    < servlet>
    < servlet-name>AxisServlet< /servlet-name>
    < servlet-class>
    org.apache.axis.transport.http.AxisServlet
    < /servlet-class>
    < /servlet>
    < servlet>
    < servlet-name>AdminServlet< /servlet-name>
    < servlet-class>
    org.apache.axis.transport.http.AdminServlet
    < /servlet-class>
    < load-on-startup>100< /load-on-startup>
    < /servlet>
    < servlet>
    < servlet-name>SOAPMonitorService< /servlet-name>
    < servlet-class>
    org.apache.axis.monitor.SOAPMonitorService
    < /servlet-class>
    < init-param>
    < param-name>SOAPMonitorPort< /param-name>
    < param-value>5001< /param-value>
    < /init-param>
    < load-on-startup>100< /load-on-startup>
    < /servlet>
    < servlet-mapping>
    < servlet-name>AxisServlet< /servlet-name>
    < url-pattern>/servlet/AxisServlet< /url-pattern>
    < /servlet-mapping>
    < servlet-mapping>
    < servlet-name>AxisServlet< /servlet-name>
    < url-pattern>*.jws< /url-pattern>
    < /servlet-mapping>
    < servlet-mapping>
    < servlet-name>AxisServlet< /servlet-name>
    < url-pattern>/services/*< /url-pattern>
    < /servlet-mapping>
    < servlet-mapping>
    < servlet-name>SOAPMonitorService< /servlet-name>
    < url-pattern>/SOAPMonitor< /url-pattern>
    < /servlet-mapping>
    < !-- uncomment this if you want the admin servlet -->
    < !--
    < servlet-mapping>
    < servlet-name>AdminServlet< /servlet-name>
    < url-pattern>/servlet/AdminServlet< /url-pattern>
    < /servlet-mapping>
    -->
    < session-config>
    < session-timeout>20< /session-timeout>
    < /session-config>
    < !-- currently the W3C havent settled on a media type for WSDL;
    http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
    for now we go with the basic 'it's XML' response -->
    < mime-mapping>
    < extension>wsdl< /extension>
    < mime-type>text/xml< /mime-type>
    < /mime-mapping>
    < mime-mapping>
    < extension>xsd< /extension>
    < mime-type>text/xml< /mime-type>
    < /mime-mapping>
    < welcome-file-list id="WelcomeFileList">
    < welcome-file>index.jsp< /welcome-file>
    < welcome-file>index.html< /welcome-file>
    < welcome-file>index.jws< /welcome-file>
    < /welcome-file-list>
    < /web-app>
    4、编写服务端程序server,SayHello.java,编译server.SayHello.java
    package server;
    public class SayHello
    {
    public String getName(String name)
    {
    return "hello "+name;
    }
    }
    5、编写wsdd文件
    deploy.wsdd文件内容如下:
    < deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java=
    "http://xml.apache.org/axis/wsdd/providers/java">
    < service name="SayHello" provider="java:RPC">
    < parameter name="className" value="server.SayHello.getName"/>
    < parameter name="allowedMethods" value="*"/>
    < parameter name="scope" value="session"/>< !-- request, session, or application -->
    < /service>
    < /deployment>
    6、把工程发布到Tomcat并启动Tomcat
    7、发布服务
    编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下:
    set Axis_Lib=.\lib
    set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
    set Axis_Servlet=http://localhost:8080/AxisTest/servlet/AxisServlet
    %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
    执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/AxisTest/servlet/AxisServlet或http://localhost:8080/AxisTest/services就会显示服务列表。
    8、生成客户端client stub文件
    在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。
    编写一个WSDL2Java.bat文件,其内容如下:
    set Axis_Lib=.\lib
    set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
    set Output_Path=.\src
    set Package=server.com
    set wsdl_path=http://localhost:8080/AxisTest/services/ SayHello?wsdl
    %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% %wsdl_path%
    执行这个批处理文件就可以生成client stub。
    生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java。
    9、编写客户端程序,编译并执行
    1)、Stubs方式
    下面是一段junit测试客户端代码。
    import java.net.URL;
    import junit.framework.Test;
    import junit.framework.TestCase;
    import junit.framework.TestSuite;
    public class TestWSClient extends TestCase {
    public TestWSClient(String string) {
    super(string);
    }
    public void SayHelloClient() throws Exception {
    SayHelloService service = new SayHelloServiceLocator();
    SayHello_PortType client = service.getSayHello() ;
    String retValue = client.getName("clientname");
    System.out.println(retValue);
    }
    public static Test suite() {
    TestSuite suite = new TestSuite();
    suite.addTest(new TestWSClient("SayHelloClient"));
    return suite;
    }
    }
    2)、动态调用方式:
    try {
    // Options options = new Options(args);
    String endpointURL = "http://localhost:8080/AxisTest/services/SayHello";
    Service  service = new Service();
    Call     call    = (Call) service.createCall();
    call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
    call.setOperationName( new QName("SayHello", "getName") );
    String res = (String) call.invoke( new Object[] {"Jack"} );
    System.out.println( res );
    } catch (Exception e) {
    System.err.println(e.toString());
    }

分享到:
评论

相关推荐

    axis开发web service程序

    此示例演示了如何使用 Apache Axis 开发和部署 Web Service,并通过客户端进行调用。需要注意的是,客户端和服务端的通信依赖于 SOAP 协议和 XML 数据格式。在实际开发过程中,可以根据具体需求调整服务发布方式和...

    Axis开发Web Service程序教程

    【标题】: "Axis开发Web Service程序教程" 【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: ...

    Axis开发Web Service实例

    【Axis开发Web Service实例】 Apache Axis 是一个开源的Web Service框架,它允许开发者轻松地创建和部署Web服务。本文将详细介绍使用Axis开发Web服务的全过程,包括安装、编写服务、发布服务以及客户端调用。 **一...

    AXIS开发Web Service.docx

    AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...

    Axis开发Web Service的实例

    ### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了...

    axis开发资料

    项目收集的axis的相关资料~~ Axis.pdf AXIS(Java+WebSerivce)全攻略.mht axis开发.doc 用Axis开发基于Java的Web服务.doc AXIS实现Web服务深入篇.TXT AXIS学习笔记.txt ...使用Axis开发Web Service程序.txt

    Axis 开发Web Service(学习笔记)

    **Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...

    使用Eclipse的Axis1.4插件开发Web Service及客户端

    在Eclipse JEE 3.3版本中,开发Web Service和客户端程序变得相对简单,因为该版本已经集成了Axis1.4插件,无需额外安装。 Axis是一个开放源码的Web Service框架,它允许开发者快速地创建和部署Web Service。 1. **...

    使用Axis开发Web服务

    ### 使用Axis开发Web服务 #### 1. Axis介绍 Apache Axis 是一个开源的 SOAP 基础架构,用于实现 Web 服务。它是由 Apache 软件基金会维护的一个项目,可以用于构建和调用 SOAP 协议的 Web 服务。Axis 最初是从 IBM...

    基于Tomcat5.0和Axis2开发Web Service应用实例

    【标题】基于Tomcat5.0和Axis2开发Web Service应用实例 在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,...

    axis2 web service完整教学

    【Apache Axis2 Web Service 教程】 Apache Axis2 是一个流行的开源Web服务框架,用于创建、部署和管理高性能的Web服务...通过这个过程,开发者可以了解Web服务的基本工作原理以及使用Eclipse进行Web服务开发的流程。

    基于Axis2的Web Service 快速开发.ppt

    总的来说,基于Axis2的Web Service快速开发涉及到理解Web Service的基本概念,熟悉WSDL、SOAP和UDDI等关键技术,以及掌握Axis2的安装、部署和使用方法。通过这些步骤,开发者可以快速构建和发布自己的Web Service,...

    eclipse 生成 Axis2 Web Service 客户端

    本文将详细介绍如何在Eclipse开发环境中创建基于Axis2的Web Service客户端。Axis2是Apache组织下的一个开源项目,它提供了一种用于构建服务端和服务客户端的高性能、完全可扩展的框架。对于希望在Java平台上开发和...

    方便Web Service开发的axis2插件

    标题中的“方便Web Service开发的axis2插件”指的是Axis2,这是一个开源的Web服务框架,专门用于简化和加速在Java环境中开发Web服务的过程。它提供了丰富的功能集,包括自动代码生成、服务部署以及多种协议的支持,...

    如何使用Eclipse开发Web Service

    【如何使用Eclipse开发Web Service】 在开发Web Service时,Eclipse作为一个强大的集成开发环境(IDE),提供了便捷的工具和插件支持。本篇将详细阐述如何在Eclipse中进行Web Service的开发。 1. **准备工作** ...

    axis web service例子

    Axis是Apache软件基金会开发的一个开源Java库,主要用于创建和使用Web服务。本文将深入讲解基于Java的Axis Web服务,以及如何通过一个实际案例来理解其工作原理。 1. Axis简介: Axis是Java平台上流行的Web服务...

    MyEclipse7.0创建基于Axis的Web service

    在本文中,我们将深入探讨如何使用MyEclipse7.0,一个强大的Java集成开发环境,来创建、发布以及测试基于Axis的Web服务。\n\n1. **实验目的**\n - 掌握MyEclipse7.0中Axis Web服务开发环境的配置\n - 学习通过Top-...

    MyEclipse下开发Web Service(Axis2)

    本教程将深入探讨如何在MyEclipse集成开发环境中使用Axis2来开发Web服务。 1. **MyEclipse简介** MyEclipse是一款强大的Java EE集成开发环境,它是Eclipse的商业版本,支持多种Web应用开发,包括JSP、Servlet、...

Global site tag (gtag.js) - Google Analytics