axis2 webservice

来源:互联网 发布:数据错误文件被破坏 编辑:程序博客网 时间:2024/05/07 13:42

1.首先下载axis2的包,如图

2.解压axis2-1.6.3-war,将axis2.war丢到服务器的webapp下,启动服务器,浏览器输入locahost:8080/axis2.若出现下图,则表示初始化成功:

3.新建WEB项目,同时将axis2.war中WEB-INF下的除classes目录外的其他文件复制到项目的WEB-INF目录下,如图:


这里讲解下这些目录的作用,conf目录一般不更改,存放axis2的配置文件axis2.xml,lib是axis2常用包,这些包也是可以在axis2-1.6.3-bin包中找到的。modules目录,暂时还未发现有什么可以更改的东西,保持原样,

接下来是web.xml,里面配置axis2的拦截器AxisServlet,这里需注意servlet名称不要使用原来web.xml里面的axis2,需要改其他名,如axis22,否则会异常。下面贴下web.xml的完整配置。

<span style="font-family:SimSun;"><span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>    <servlet>    <!-- 这里最好不要用axis2作为名称,会异常 -->        <servlet-name>Axis22</servlet-name>        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>Axis22</servlet-name>        <!-- 拦截该请求 ,用AxisServlet必须使用该映射路径-->        <url-pattern>/services/*</url-pattern>    </servlet-mapping>   <welcome-file-list>      <welcome-file>index.jsp</welcome-file>    </welcome-file-list></web-app></span></span>

services目录是它们中最重要的了,是webservice服务的配置文件,配置你的webservice。目录结构如下:

这里一定要注意services下要设置多一个目录,目录名随意,这里是AxisSrv.

接下来是services.xml文件,代码如下:

<span style="font-family:SimSun;"><span style="font-size:14px;"><!-- 服务组。当需要配置多个服务时需要加上该元素,如果只配置一个服务,则不是必须的 --><serviceGroup><!-- http://localhost:8080/TestAxis2/services/myFirstAxisSrv?getUserName?name=zhou --><service name="myFirstAxisSrv"><!-- name是必须的,你自定义的服务名称,地址栏最终是访问的是这个名称而不是类名 -->    <description>第一个WebService例子</description>    <parameter name="ServiceClass"><!-- ServiceClass,固定名称,请注意这里的大小写,配置服务名称对应的服务类 -->       com.zsj.MyService1    </parameter>     <!-- 配置对外公开的方法,这里的名字是服务类中对应的方法名,或许你会想我要是有参数呢,看最上面的链接,参数是客户端调用时在url中传递进来的,-->    <operation name="getUserName">        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />        <!--该元素用于设置处理WebService方法的处理器。例如,getUserName方法有一个返回值,因此,需要使用可处理输入输出的RPCMessageReceiver类,  -->        <!--一般为方便,都设置成RPCMessageReceiver -->    </operation></service><service name="mySecondAxisSrv">  <description>第二个WebService例子</description>  <parameter name="ServiceClass">com.zsj.MyService2</parameter>  <operation name="getAge">      <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>  </operation></service></serviceGroup></span></span>

4.配置文件讲解完,接下来我们的服务类了,太简单了,直接上代码

<span style="font-family:SimSun;">package com.zsj;public class MyService1 {public String getUserName(String name){return name;}}</span>

<span style="font-family:SimSun;">package com.zsj;public class MyService2 {public void getAge(){System.out.println("调用了输出年龄的方法");}}</span>

5.现在我们整个WebService项目就搭建好了,上面的这种方式是基于services.xml配置文件的方式搭建webservice,网上还有其他,感觉没啥用,就不解释了,有兴趣的自己去看。

接下来先不急着在客户端调用,现在地址栏输入http://localhost:8080/TestAxis2/services/mySecondAxisSrv?wsdl如果返回wsdl格式的数据则表明该webservice已经配置正确,接下来验证是否能够正确调用。

地址栏输入http://localhost:8080/TestAxis2/services/myFirstAxisSrv?getUserName?name=zhou,调用第一个服务的getUserName方法,看是否正确返回。


然后测试第二个服务,输入http://localhost:8080/TestAxis2/services/mySecondAxisSrv/getAge,结果如图:

地址栏测试完毕,但真正处理业务逻辑时肯定要写到代码逻辑啦,下节就讲解如何编写webservice客户端文件。


1 0
原创粉丝点击