axis2 webservice
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.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客户端文件。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |