发布

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

在项目中集成

1、引入axis2相关jar包,为了省事都弄进去了。

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>

调用方式除了项目名可能不同,其他的都一样。

大体的流程就是这样,希望您也能成功部署。

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. linux添加环境变量(centos)
  2. 要当好JavaScript程序员:5个debug技巧
  3. JMeter中BeanShell用法总结(一)
  4. yum命令不能使用的相关错误
  5. c#调用系统资源大集合-1
  6. Waring:This LinearLayout layout or its FrameLayout parent is useless; transfer the background attribute to the other view
  7. 谈网页游戏外挂之用python模拟游戏(热血三国2)登陆
  8. Nginx 独立图片服务器的搭建
  9. (原)torch使用caffe时,提示CUDNN_STATUS_EXECUTION_FAILED
  10. OnWndMsg处理功能
  11. iOS面向对象的建模:MVC(OC基础)
  12. S3C2440 ADC详解
  13. Dubbo与Zookeeper、SpringMVC整合和使用
  14. 第一章 Python基本语法元素
  15. ssl证书过期问题
  16. Java中的深克隆和浅克隆
  17. Winfrom DataGridView中使用Tooltip
  18. Android自定义布局的背景在多分辨率的情况下设置fill_parent时背景不能够横向全屏的问题解决
  19. 12.22daily_scrum
  20. MySQL的lock tables和unlock tables的用法(转载)

热门文章

  1. dp和px转换
  2. 开源分布式实时计算引擎 Iveely Computing 之 WordCount 详解(3)
  3. Bootstrap2和3的区别
  4. [poj2184]我是来水一下背包的
  5. JAVA并发的性能调整
  6. All thanks
  7. hdu1520 树形dp
  8. Html-Css-li标签增加图片
  9. 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
  10. BZOJ-2186 沙拉公主的困惑 线性筛(筛筛筛)+线性推逆元