发布

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>

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

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

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

axis2 webservice 发布、调用与项目集成的更多相关文章

  1. axis2 WebService的发布与调用

    1:准备:    JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html    e ...

  2. Axis2 webservice入门--Webservice的发布与调用

    一.Webservice发布 参考 http://www.cnblogs.com/demingblog/p/3263576.html 二.webservice 调用 部分参考:http://www.c ...

  3. 使用axis2进行webservice发布与调用

    一.介绍下cxf.axis.axis2区别 新一代的Web Services 框架如Axis2.CXF 都是由现有的项目中逐渐演化而来的,Axis2 是由大家熟悉的Axis 1.x 系列演化过来,而A ...

  4. Axis2 WebService(配置、发布、调用)

    准备工作 1.下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址:http://axis.apache.org/axis2/java/core/ 2.环境变 ...

  5. 使用Axis2方式发布webService的三种方式

    1.Axis2的下载和安装 首先可以下载如下两个zip包:axis2-1.6.1-bin.zipaxis2-1.6.1-war.zip其中 axis2-1.6.1-bin.zip文件中包含了Axis2 ...

  6. 使用Axis2方式发布webService实例说明

    1.简单的pojo方式: 不需要写配置文件,直接把class文件拷贝到axis2的WEB-INF目录下的poji文件夹下即可.但其局限性表现在,实现类不能有包声明,这在实际开发过程中使用较少,这里不做 ...

  7. Axis2 webservice 之使用java调用webservice

    在上一篇中写了一个简单了webservice,实现了一个sayHello功能.那么webservice写好之后我们如何使用Java程序来调用webservice呢? 一.java调用的webservi ...

  8. eclipse安装Axis2插件和简单的webservice发布

    2019独角兽企业重金招聘Python工程师标准>>> Axis2与CXF是现在很主流的WebService开发框架(java6也已经支持了),项目上还都是基本上用前两种做开发,今天 ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。

    系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

随机推荐

  1. 云计算之路-阿里云上:2014年6月11日17点遇到的CPU 100%状况

    今天下午17:00-17:05之间,在请求量没有明显变化的情况下,SLB中的1台云服务器的CPU突然串到100%(当时SLB中一共有3台云服务器),见下图: 造成的直接后果是请求执行时间变得超长,最长 ...

  2. Linq之求和,平均值,最大值,最小值

    写在前面 最近一直在弄统计的内容,和统计相关的操作,就需要用到了,而有些在数据库中操作起来非常不方便,没办法就用c#中的linq来实现了. 代码 一个例子 using System; using Sy ...

  3. EntityFramework_MVC4中EF5 新手入门教程之四 ---4.在EF中创建更复杂的数据模型

    在以前的教程你曾与一个简单的数据模型,由三个实体组成.在本教程中,您将添加更多的实体和关系,并通过指定格式. 验证和数据库映射规则,您将自定义数据模型.你会看到自定义的数据模型的两种方式: 通过添加属 ...

  4. HTML5——购物车

    简要代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  5. uploadfile上传文件时ie浏览器无法弹出窗口

    设置--->安全---->activeX筛选取消选择 更多.net.sqlserver.jquery资料欢迎访问 htttp://www.itservicecn.com    

  6. 编译rnnlib

    rnnlib,一个多年不更新的rnn库,编译的过程有点麻烦,好多东西要选特定版本的.这里记录一下我的配置脚本,在ubuntu14.04下测试ok. P.S fedora下好像不能直接用包管理来安装指定 ...

  7. Deformity PHP Webshell、Webshell Hidden Learning

    目录 . 引言 . webshell原理介绍 . webshell的常见类型以及变种方法 . webshell的检测原理以及检测工具 . webshell隐藏反检测对抗手段 0. 引言 本文旨在研究W ...

  8. Put-Me-Down项目Postmortem

    设想和目标 PMD是一款帮助低头族控制使用手机时间的APP,设想按照需求规格说明书内容实现功能,能将数据备份到服务器. 计划 初始计划我们是想将程序方面分为安卓和后台,主要是程序方面的工作.我们对项目 ...

  9. java中抽象类与接口中方法访问修饰符问题 (

    1.抽象类中的抽象方法(其前有abstract修饰)不能用private.static.synchronized.native访问修饰符修饰.原 因如下:抽象方法没有方法体,是用来被继承的,所以不能用 ...

  10. MyEclipse------黑科技

    自动计算器(+,-,*,/) <form method="post" oninput="o.value = parseInt(a.value) + parseInt ...