加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

axis2 webservice

发布时间:2020-12-16 22:09:03 所属栏目:安全 来源:网络整理
导读:1.首先下载axis2的包,如图 2.解压axis2-1.6.3-war,将axis2.war丢到服务器的webapp下,启动服务器,浏览器输入locahost:8080/axis2.若出现下图,则表示初始化成功: 3.新建WEB项目,同时将axis2.war中WEB-INF下的除classes目录外的其他文件复制到项目的WEB-

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客户端文件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读