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:\ws\com\array7\ws\Axis2Test.class,
将services.xml放入X:\ws\META-INF\services.xml。
cmd窗口,cd X:\ws,执行 jar -cvf ws.aar . ,有个(.)别落下。成功后在ws目录生成一个ws.aar的文件。
6、将生成的aar放入tomcat\webapps\WEB-INFO\services中。重启tomcat。浏览器输入:http://locahost:8080/axis2/services/Axis2Test?name=array7
如果显示一个xml文档并且有:Hi~you are array7,则说明我们的webservice发布成功了。不能成功访问,则请根据提示从前面的步骤查找原因。
客户端调用
7、cmd窗口,cd 任意目录,执行:%AXIS2_HOME%\bin\wsdl2java -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
在项目中集成
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>
调用方式除了项目名可能不同,其他的都一样。
大体的流程就是这样,希望您也能成功部署。
版权声明:本文为博主原创文章,未经博主允许不得转载。
axis2 webservice 发布、调用与项目集成的更多相关文章
- axis2 WebService的发布与调用
1:准备: JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html e ...
- Axis2 webservice入门--Webservice的发布与调用
一.Webservice发布 参考 http://www.cnblogs.com/demingblog/p/3263576.html 二.webservice 调用 部分参考:http://www.c ...
- 使用axis2进行webservice发布与调用
一.介绍下cxf.axis.axis2区别 新一代的Web Services 框架如Axis2.CXF 都是由现有的项目中逐渐演化而来的,Axis2 是由大家熟悉的Axis 1.x 系列演化过来,而A ...
- Axis2 WebService(配置、发布、调用)
准备工作 1.下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址:http://axis.apache.org/axis2/java/core/ 2.环境变 ...
- 使用Axis2方式发布webService的三种方式
1.Axis2的下载和安装 首先可以下载如下两个zip包:axis2-1.6.1-bin.zipaxis2-1.6.1-war.zip其中 axis2-1.6.1-bin.zip文件中包含了Axis2 ...
- 使用Axis2方式发布webService实例说明
1.简单的pojo方式: 不需要写配置文件,直接把class文件拷贝到axis2的WEB-INF目录下的poji文件夹下即可.但其局限性表现在,实现类不能有包声明,这在实际开发过程中使用较少,这里不做 ...
- Axis2 webservice 之使用java调用webservice
在上一篇中写了一个简单了webservice,实现了一个sayHello功能.那么webservice写好之后我们如何使用Java程序来调用webservice呢? 一.java调用的webservi ...
- eclipse安装Axis2插件和简单的webservice发布
2019独角兽企业重金招聘Python工程师标准>>> Axis2与CXF是现在很主流的WebService开发框架(java6也已经支持了),项目上还都是基本上用前两种做开发,今天 ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。
系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
随机推荐
- 【原创】基于Memcached 实现用户登录的Demo(附源码)
一个简单的Memcached在Net中运用的一个demo.主要技术 Dapper+MVC+Memcached+sqlserver, 开发工具为vs2015+Sql 效果图如下: 登录后 解决方案 主要 ...
- css3动画 bug
1. .myanimate{ transition-property: left;transition-duration: .3s;transition-timing-function: ease } ...
- redis学习笔记——(2)
4.Redis中的string类型 String类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或者序列化的对 ...
- Source Tree for MAC1.6
Atlassian ID has become the new Atlassian Account. Read more about it here. After some great communi ...
- 2016 版 Laravel 系列入门教程(二)【最适合中国人的 Laravel 教程】
本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本篇文章中,我将跟宝宝们一起学习 Laravel ...
- web服务器
1.打破信息孤岛,实现信息的集成 2.配置文件 web.xml 定义自己的服务器应该要哪些功能! 3.tomcat 是一个servlet容器,一个web服务器. 部署:将web应用 ...
- 关于obj和基本类通过函数参数传进去执行是否改变原来的值
var obj = { p1 : 1, p2 : 2 }; (function(_/* 这个东东是地址的应用哦 */){ _.p1 = 3, _.p2 = 4 })(obj) var i = 2; ( ...
- poj1679 kruskal
判断最小生成树是否唯一.kruskal时记录需要的边,然后枚举删除它们,每次删除时进行kruskal,如果值未变,表明不唯一. #include<stdio.h> #include< ...
- java基础-关键字-native
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由 ...
- Nginx简单实现网站的负载均衡
在大型网站搭建时,都会考虑如果用户量每日不断增加,大量的并发访问,会不会给网站.数据库带来崩盘的灾难.今天我们就讨论一下,现实中如何解决这些问题的一套最为容易实现的方案. 控制并发,大家都会首先考虑的 ...