zoukankan      html  css  js  c++  java
  • 使用AXIS进行java的WebService开发

    近期由于参与项目涉及到使用JAVA进行WebService进行开发,所以特地在网上查找资料研究了一下,在java中一般是使用Axis框架来进行webservice开发的,Axis比较强大,能自动帮我们生成网络通信的代码,为开发节约了不少时间,在这里特此记录一下,备忘。

    一、Axis环境的安装

    1、主要软件环境

    安装环境 J2SE SDK 1.4.2(或更高版本),Tomcat 5.0(或更高版本),eclipse 3.2(或其他IDE)。

    2、下载并配置Axis

    到  http://www.ip97.com/apache.org/ws/axis/1_4/axis-bin-1_4.zip网站下载Axis安装包。

    下载完成解压后,将 webapps/axis 这个目录复制 %tomcathome%/webapps/ 下然后启动tomcat, 打开URL: http://localhost:8080/axis/  ; 

    配置成功后将有如下信息,打开 validataion 然后,页面上的信息会告诉你已经有的包和还要差的包,然后根据提示将必须的包下载全.复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录; 重起tomat ,直到必须的包都装齐.

    Jar包列表如下:

    xmlsec.jar;wsdl4j-1.5.1.jar;saaj.jar;mail.jar;log4j-1.2.8.jar;jaxrpc.jar;commons-logging-1.0.4.jar;commons-discovery-0.2.jar;axis-ant.jar;axis.jar;activation.jar

    Axis支持三种web service的部署和开发,分别为:

    1).    Dynamic Invocation Interface (DII)

    2).    Dynamic Proxy方式

    3).    Stubs方式

    一般建议我们使用Stubs方式,因此下面主要就介绍一下第三种方式。注意,我自己的 Java源代码是放在D:"workspace"test"目录下,Axis相关包文件放在D:"workspace"test"WEB-INF目录下。

    二、编写wsdd发布web服务,编写stub client访问web服务

    1、编写服务端程序

    在server包下编写SayHello.java,并编译server.SayHello.java

    package server;
    public class SayHello
    {
        public String getName(String name)
        {
            return "hello "+name;
        }
    }

    2、编写wsdd文件

    deploy.wsdd文件内容如下(该文件放在工程目录下的WEB-INF目录下):

    <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 "/>

      <parameter name="allowedMethods" value="*"/>
     </service>
    </deployment>

    3、发布服务

    编辑一个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/test/servlet/AxisServlet

    %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd

    执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/test/services 就会显示服务列表。

    若这个时候报找不到servlet/AxisServlet(404 not found),则是web.xml没有设置好AxisServlet (可以参考axis里目录下的web-inf里面的web.xml的设置【查找AxisServlet查看】)。

    4、生成客户端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=E:"soft"Eclipse"eclipse"workspace"WebServiceTest"src"

          set Package= client.SayHello

           %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8080/test/services/SayHello?wsdl

           执行这个批处理文件就可以生成client stub.生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java 


    5、编写客户端程序,编译并执行

    client.SayHello包下编写TestClient.java文件,代码如下:

    package client.SayHello;

     

    public class TestClient {  

     

        public static void main(String[] args) throws Exception {  

           SayHelloService service = new SayHelloServiceLocator();

            SayHello_PortType client = service.getSayHello() ;

            String retValue = client.getName("gz!");

            System.out.println(retValue);

        }  

    }  

      至此,整个服务器端和客户端的Web Service框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,Web Service并不难开发吧。

    近期,有个项目需要用到WebService,所以对java中如何使用AXIS来进行WebService进行开发做了下尝试,特总结如下:

  • 相关阅读:
    BZOJ4912 [Sdoi2017]天才黑客 【虚树 + 最短路】
    BZOJ2738 矩阵乘法 【整体二分 + BIT】
    BZOJ1185 [HNOI2007]最小矩形覆盖 【旋转卡壳】
    BZOJ4830 [Hnoi2017]抛硬币 【扩展Lucas】
    BZOJ3738 [Ontak2013]Kapitał 【扩展Lucas】
    云计算,大数据,人工智能
    conda基本操作
    nlp基础(一)基本应用
    ml交叉验证
    Python魔术方法
  • 原文地址:https://www.cnblogs.com/zhangqingping/p/1417888.html
Copyright © 2011-2022 走看看