• axis2 webservice 发布、调用与项目集成


    发布

    1、在apache官网下载axis2包,下载Binary Distribution和War Distribution两个zip。

    2、将war放入tomcat webapps下部署。并输入 http://localhost:8080/axis2测试确保显示正常。

    3、将bin包解压,记住位置。配置环境变量AXIS2_HOME,路径为你解压的那个目录位置,后面要用到。

    4、web service发布。方法有两种,1、使用pojo发布;2、通过配置文件发布。第一种pojo发布不能定义package,所以,我们不谈。我认为不定义package的webservice那就是在耍流氓。这里主要对第二种方法做记录,只为说明如何去使用,不会嵌入业务逻辑。

    Axis2Test.java

    package com.array7.ws;
    public class Axis2Test {
    	public String print(String name) {
    		if (name == null) {
    			name = "anonymous";
    		}
    		return "Hi~you are " + name;
    	}
    }
    

    services.xml

    <?xml version="1.0" encoding="UTF-8"?>  
    <serviceGroup>  
    <service name="<?xml version="1.0" encoding="UTF-8"?>  
    <serviceGroup>  
    <service name="Axis2Test">  
        <description>  
            Web Service test
        </description>  
        <parameter name="ServiceClass">  
            com.array7.ws.Axis2Test
        </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>

    如果要配置多个webservice,在serviceGroup中添加service标签块即可。

    5、打aar包

    将java文件编译。

    在你愿意的任何位置创建目录(我的叫ws),在这个目录下,按照包结构将Axis2Test.class放入,结构就应该是这样的:X:wscomarray7wsAxis2Test.class,

    将services.xml放入X:wsMETA-INFservices.xml。


    cmd窗口,cd X:ws,执行 jar -cvf ws.aar . ,有个(.)别落下。成功后在ws目录生成一个ws.aar的文件。

    6、将生成的aar放入tomcatwebappsWEB-INFOservices中。重启tomcat。浏览器输入:http://locahost:8080/axis2/services/Axis2Test?name=array7

    如果显示一个xml文档并且有:Hi~you are array7,则说明我们的webservice发布成功了。不能成功访问,则请根据提示从前面的步骤查找原因。

    客户端调用

    7、cmd窗口,cd 任意目录,执行:%AXIS2_HOME%inwsdl2java -uri http://localhost:8080/axis2/services/Axis2?wsdl -p  com.array7.ws.client -s -o client

    参数p代表包名,参数o代表保存在当前目录下的存放代码的文件夹名称。即在当前目录下您将会看见一个client的目录。这个目录里有自动生成的客户端代码。

    8、将代码放入项目对应的包中,要引入axis2 lib里面的jar包。新建一个java类,做一个测试。

    Run.java

    public class Run {
    	public static void main(String[] args) throws RemoteException {
    		 Axis2TestStub stub = new Axis2TestStub();  
    		 Axis2TestStub.Print print = new Axis2TestStub.Print();  
    	        print.setName("array7");
    	        System.out.println(stub.print(print).get_return());  
    	}
    }
    


    期望输出的结果是:

    Hi~you are array7

    在项目中集成

    1、引入axis2相关jar包,为了省事都弄进去了。

    2、将webapps下面的axis2目录中WEB-INFO下的config、moudles和services目录对应复制到项目的WEB-INFO下。

    3、配置web.xml,增加下列代码。

    <servlet>
    <description></description>
    <display-name>Apache-Axis Servlet</display-name>
    <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>
    


    调用方式除了项目名可能不同,其他的都一样。


    大体的流程就是这样,希望您也能成功部署。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    hdu4726
    hdu2709
    hdu4706
    hdu4715
    快速幂取模
    快速幂
    asp.net中页面传值
    微信小程序支付
    sql 查询重复记录值取一条
    bower使用
  • 原文地址:https://www.cnblogs.com/liushijie/p/4712933.html
Copyright © 2020-2023  润新知