本文将介绍如何使用Tomcat5.0和Apache Axis2开发、部署及测试一个简单的Web Service应用。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
author: ZJ <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />07-3-12
Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]
1工作环境
Eclipse 3.1.2+Lomboz+jdk1.5+ apache-tomcat-5.0.18+AXIS2:1.0(war版本和bin版本)
在[url]http://ws.apache.org/axis2/download/1_0/download.cgi[/url]页面下,下载AXIS2的Binary Distribution url: [url]http://apache.justdn.org/ws/axis2/1_0/axis2-std-1.0-bin.zip[/url]和war Distribution url: [url]http://apache.justdn.org/ws/axis2/1_0/axis2-1.0-docs.zip[/url]。把这两个文件解压,比如解压缩的后得目录为C:\axis2-std-1.0-bin和C:\axis2.war。
在Eclipse下通过菜单window—preferences…--Java—Build Path—User Libraries 新建一个user library,比如名字就叫axis2把C:\axis2-std-1.0-bin\lib下的所有jar文件包含进来。把axis2.war拷贝到%TOMCAT-HOME%/webapps下面。
2.检验安装
在Eclipse下启动Tomcat,在地址栏内输入[url]http://localhost:8080/axis2/[/url]。
点击Validate,将到达 Axis2 Happiness Page。
3.WebService中的HelloWorld
1)新建一个动态web工程,取名ZZaxis,右键点击项目名,选择Properties-Java Build Path-Add Library-User Library-axis2。
2)新建package sample,建立HelloWorld.java,代码如下。
HelloWorld.java
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class HelloWorld {
       public OMElement sayHello(OMElement in){
              String name=in.getText();
              String info=name+"HelloWorld!";
              OMFactory fac=OMAbstractFactory.getOMFactory();
              OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
              OMElement resp=fac.createOMElement("sayHelloResponse",omNs);
              resp.setText(info);
              return resp;
       }
}
3)在WebContent\META-INF\建立services.xml,代码如下。
services.xml
<?xml version="1.0" encoding="UTF-8"?>
<service name="HelloWorld">
<description>
  This is a sample Web Service.
</description>
<parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter>
<operation name="sayHello">
  <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
4)将目录sample和目录META-INF组织如下(新建目录example)。
+-example
|-------- +-sample
    |------- HelloWorld.class
|---------+-META-INF
       |------- services.xml
5)打包生成aar文件。
在命令符环境下,将当前目录转到example。
jar cvf HelloWorld.aar . //注意最后一个点,在当前目录下生成HelloWorld.aar。

6)在Eclipse中启动Tomcat,在地址栏下键入[url]http://localhost:8080/axis2/[/url]。选择Administration,输入用户名admin,密码axis2。选择左侧工具栏Tools- Upload Service,上传之前打包的HelloWorld.aar。该文件将在<CATALINA_HOME>/webapps/axis2\WEB-INF\services目录下。
7)编写客户端检验代码。新建Java Project,取名为ZZaxisClient。右键点击项目名,选择Properties-Java Build Path-Add Library-User Library-axis2。
8)新建package example.client。建立TestClient.java,代码如下。
TestClient.java
package example.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestClient {
       private static EndpointReference targetEPR=new EndpointReference
         ("http://localhost:8080/axis2/services/HelloWorld");
       public static OMElement getSayHelloOMElement(){
              OMFactory fac=OMAbstractFactory.getOMFactory();
              OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
              OMElement method=fac.createOMElement("sayHello",omNs);
              method.setText("ZJ");
              return method;
       }
       public static void main(String[] args){
              try{
                     Options options=new Options();
                     options.setTo(targetEPR);
                     ServiceClient sender=new ServiceClient();
                     sender.setOptions(options);
                     OMElement sayHello=TestClient.getSayHelloOMElement();
                     OMElement result=sender.sendReceive(sayHello);
                     System.out.println(result);
              }
              catch(Exception axisFault){
                     axisFault.printStackTrace();
              }
       }
}
9)测试,run TestClient.java as Java Application。结果:
<hw:sayHelloResponse xmlns:hw="http://helloworld.com/"
xmlns:tns="http://ws.apache.org/axis2">
ZJHelloWorld!
</hw:sayHelloResponse>
4.后续
详细介绍client和server端代码。《基于Tomcat5.0和Axis2开发Web Service代码详解

转载于:https://blog.51cto.com/zhangjunhd/23690

基于Tomcat5.0和Axis2开发Web Service应用实例相关推荐

  1. 基于Tomcat5.0和Axis2开发Web Service代码详解

    本文将详细介绍HelloWorld中使用的server和client端代码.阅读之前,你应该首先了解SOAP1.1协议.<?xml:namespace prefix = o ns = " ...

  2. myeclipse下用axis2开发web service的第一个程序(SayHello)

    jar包 axis.jar jaxrpc.jar saaj.jar commons-logging.jar commons-discovery.jar wsdl4j.jar SayHello是很多人都 ...

  3. myeclipse下用axis2开发web service

    SayHello是很多人都写过的web service.实现的功能是通过web服务输出"人名,how are you?" 本文参考网上众多资料,有的也不知源作者是谁,就不一一列举了 ...

  4. 初体验myeclipse+Axis2 开发web service (一)转

    SayHello是很多人都写过的web service.实现的功能是通过web服务输出"人名,how are you?" 本文参考网上众多资料,有的也不知源作者是谁,就不一一列举了 ...

  5. [Axis2与Eclipse整合开发Web Service系列之三] 服务端返回值

    前言 在前面的三篇中 [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码) [Axis2与Eclipse整 ...

  6. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)

    前言 本篇是承接上一篇: [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端 在上一篇粗略地介绍了如何使用Top-Down的方式创建 ...

  7. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

    [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...

  8. .NET使用VS2010开发Web Service

    Web Service是一个面向服务的架构(SOA),不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互.基于.NET平台,可以使用 ...

  9. JAVA开发Web Service几种框架介绍

    在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所 ...

最新文章

  1. TCP四次握手释放连接
  2. kaggle账号_Kaggle 数据挖掘比赛经验分享
  3. Foxmail记事插入的表格怎么设置单元格边距
  4. OJ1010: 求圆的周长和面积
  5. linux下dns劫持C语言实现,Linux下实现劫持系统调用的总结(上)--代码及实现
  6. shiro框架的UsernamePasswordToken与对应Realm中的AuthenticationToken的一点比较
  7. 用C语言编写约瑟夫环程序,约瑟夫环C语言,请高手检查我的程序
  8. 大咖来信 | 轮值董事长徐直军,复盘华为AI战略出台始末
  9. mysql 备份的权限_Mysql 数据库备份权限
  10. 给定一列非负整数,求这些数连接起来能组成的最大的数。
  11. 计算机硬盘突然只有一个c盘,win10硬盘消失了只剩下c盘怎么恢复_win10硬盘突然消失只有c盘解决方法-win7之家...
  12. workbench动力学周炬_ANSYS WORKBENCH有限元分析实例详解(动力学)
  13. 吉他效果器amplitube 4 mac 完整破解版永久激活方法
  14. python图像锐化_(python 图像锐化教程)C 实现bmp图像锐化后,锐化的效果很差,求大神帮忙啊...
  15. 智齿科技携手无忧我房 VR+AI新品亮相GTC
  16. springboot启动banner图片
  17. 云计算数据中心的特点
  18. 好用的工作邮箱有哪些?工作邮箱如何登录
  19. java实现lbs_Java总结篇系列:Java泛型
  20. linux TC命令使用总结

热门文章

  1. VTK:IO之DumpXMLFile
  2. OpenGL Texture Coordinates纹理坐标的实例
  3. OpenGL定向光的投影阴影
  4. C语言实现跳转搜索jump search算法(附完整源码)
  5. C语言实现hashset算法(附完整源码)
  6. C++基本输入/输出
  7. springboot整合mysql5.7_每天五分钟写K8(四):SpringBoot与mysql整合
  8. 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
  9. 笛卡尔集基本原理,等值连接,不等值连接,外连接,自连接
  10. Mysql 8二进制包多实例绿色解压安装Windows配置