如何在工程中使用axis2部署webservice

有一个最简单的方法就是把axis2.war中的内容作为Web Project的基础, 来进行开发.

不过为了更清楚的了解如何在一个已有的Web Project中嵌入axis2, 那就手动来配置。大致分如下几个步骤:

一、新建Web Project,名为“WebServiceDemo”

二、下载axis2-1.5-war.zip包,解压缩

将axis2/WEB-INF/lib 里的jar包拷贝到 WebServiceDemo/WebRoot/WEB-INF/lib/

将axis2.war/axis2-web拷贝至WebServiceDemo/ WebRoot/axis2-web/

axis2需要的JAR包:

三、配置axis2 servlet

打开WebServiceDemo/WebRoot/WEB-INF/web.xml,增加如下配置:

<servlet>    
    <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>

四、写一个简单的web服务类

package service;         
public class MyService {      
              public String sayHello(String name) {  
                     return name + "says /"Hello!/"";  
              }         
}  

五、配置Web Service.

由于axis2已嵌入到WebServiceDemo项目中,所以web service就不用打包成aar,而是直接在/WEB-INF目录下创建相应的文件夹和services.xml,目录结构如下图:

六、services.xml

<?xml version="1.0" encoding="UTF-8"?>  
<service name="fmService" targetNamespace="http://webservice.sinohuarui.com">
	<schema schemaNamespace="http://webservice.sinohuarui.com/xsd/" />
	<description>
		my web service
	</description>
	<parameter name="ServiceClass">service.MyService</parameter>  
	<operation name="sayHello">           
		<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />      
	</operation>
</service>

如果一个类具有多个webservice方法的时候,使用serviceGroup进行配置:

<?xml version="1.0" encoding="UTF-8"?>  
<serviceGroup>  
       <service name="myService">  
              <description>Web Service例子</description>  
              <parameter name="ServiceClass">service.MyService</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> 

七、在浏览器中访问http://localhost:8080/WebServiceDemo/services/listServices

可以看到myService服务,说明服务已部署成功

       输入http://localhost:8080/WebServiceDemo/services/myService?wsdl

       可以查看到该Web服务的描述文件

其实,axis2-web下面的东西可以不要那么多,我就只保留了index.jsp,httpbase.jsp和listServices.jsp这三个文件,这样集成后的工程就瘦身了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据平台TBDS

kafka数据迁移实践

本文重点介绍 kafka 的两类常见数据迁移方式:1、broker 内部不同数据盘之间的分区数据迁移;2、不同 broker 之间的分区数据迁移。

1.8K10
来自专栏LhWorld哥陪你聊算法

【Spark篇】---Spark中Master-HA和historyServer的搭建和应用

                Standalone集群只有一个Master,如果Master挂了就无法提交应用程序,需要给Master进行高可用配置,Mast...

1231
来自专栏网络

换换Cygwin的Terminal吧

17年最后一篇技术相关帖来介绍一下使用secureCRT等工具连接cygwin吧。 cygwin可以说是一个很好的在Windows上迅速模拟和学习Unix/Li...

2247
来自专栏从零学习云计算

kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置

kubernetes集群的解决方案为:使用VMware Workstation Pro,安装3台Centos7 Minimal版(无图形化界面,防止电脑卡顿)的...

3130
来自专栏程序员的诗和远方

React-Native For Android 环境搭建及踩坑

安装环境 本文默认以MacOS为系统,毕竟除了用React Native搞Android,你也会想用它搞iOS。 首先当然是Android的环境搭建,这里还是推...

3326
来自专栏惨绿少年

jumpserver安装详解

环境说明   主机为最小 安装的centos6.9 x86_64. 1 [root@m01 ~]# cat /etc/redhat-release 2 Cen...

3040
来自专栏difcareer的技术笔记

编译nexus5的linux kernel源码

ubuntu14.04编译android4.4对应的linux内核 中讲述了适用于模拟器的linux kernel源码编译。适用于真机的有一些不同。为了能够对比...

972
来自专栏小狼的世界

在Centos 5.2下编译安装LAMP

首先使用Virtualbox安装一台CentOS 5.2的虚拟机,网络连接采用 Host-only Adapter,这样主客机之间可以互相访问,但是客机不能够上...

1092
来自专栏Angular&服务

node获取图片保存本地

814
来自专栏喵了个咪的博客空间

Otter-入门篇2(Manager安装配置)

Otter-入门篇2(Manager安装配置) ? 前言 上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个...

41411

扫码关注云+社区

领取腾讯云代金券