博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从无到有,WebService Apache Axis2初步实践
阅读量:5748 次
发布时间:2019-06-18

本文共 3656 字,大约阅读时间需要 12 分钟。

   WebService说起来容易, 做起来还真有些让人一头雾水,先看了《JAVA WEB服务 构建与运行》和《JavaWebSererSOAP》大致了解了一下WebService,可是还是不得要领,想用Java做一个WebService服务的例子,然后通过其他应用来享用服务,百度,google一大堆还是获取到了很大帮助,比如如下博文:  

  • Axis2 Web服务配置文件services.xml详解

  •  Web 服务与 Axis2 体系结构        

  •  WebService大讲堂之Axis2

  开始学习困难重重,作文以祭之,决定先从Axis2框架开始,以实践驱动对Webservice的理解和开发的学习。

 1.Axis2环境搭建

   下载: axis2-1.6.0-bin.zip  axis2-1.6.0-war.zip

   官方网站:

   如果下载axis2-1.6.0-src.zip,需要Ant,Maven支持来构建bin.

  • 配置环境变量:AXIS2_HOME,PATH(JDK支持,具体方法略)

  • 搭建Axis2服务环境需要Apach-tomcat支持,将axis2-1.6.0-war.zip解压后的.war文件部署到tomcat中。

  • 启动tomcat,浏览器访问:

  • 看到Welcome,安装Axis2服务成功,欢迎页面中上的Services:服务列表,Validate:检验系统环境,Administration:Axis2安装管理控制台(登录的默认用户密码在:axis2\WEB-INF\conf\axis2.xml下)。

  • admin
    axis2

 2.Axis2实例开发


   下面这个例子是进入Axis2框架开发Webservice服务的Hello World程序。

   快速起步,一个简单的例子,创建个一个服务类:

 

package com.axis.service;public class HelloService {    public String sayHello(String name) {        if (null == name) {            name = "boby";        }        return "Hello , " + name;    }}

 

 配置services.xml文件

 

HelloService POJO Service
com.axis.service.HelloService

    HelloService实现服务要提供的功能,services.xml配置对服务进行描述,最后部署服务。  

关于services.xml文件的配置可也参见本文开始提到的第一篇博文。

   服务的目录结构:

   

   jws2根目录下直接放服务类,META-INF下放置services.xml,然后将工程打包为jws2.jar,由于Axis2建议服务的归档文件后缀为aar,手动改后缀,然后将jws2.aar放置到tomcat的webapp下的axis2工程下的WEB-INF下的services目录下,例如我本地路径:D:\__dev\apache-tomcat-6.0.37\webapps\axis2\WEB-INF\services。

  重启Tomcat,浏览器访问 查看服务列表

 

  HelloService提供了一个sayHello的操作,浏览器访问:

 

  sayHello:方法,name参数,参数值:Jack,服务返回结果:

 

Hello , Jack

 

 下面是客户端使用服务的示例代码:

 

package com.axis.client;import javax.xml.namespace.QName;import org.apache.axis2.AxisFault;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.rpc.client.RPCServiceClient;public class HelloServiceClient {    private static String url1 = "http://localhost:8080/axis2/services/HelloService";    public static void main(String[] args) throws AxisFault {        RPCServiceClient client;        client = new RPCServiceClient();        Options options = client.getOptions();        System.out.println("======sayHello========");        EndpointReference endpoint = new EndpointReference(url1);        options.setTo(endpoint);        QName qname = new QName("http://service.axis.com", "sayHello");        Object[] methodArgs = new Object[] { "Tom" };        @SuppressWarnings("rawtypes")        Class[] returnType = new Class[] { String.class };        String result = (String) client.invokeBlocking(qname, methodArgs,                returnType)[0];        System.out.println(result);    }}

 

运行上述程序可以看到控制台输出:

从结果上看,第一行客户端本身的输出,第二行是服务端返回的结果打印信息。

至此展示了搭建一个简单的基于Axis2 WebService框架的服务应用实例的全过程。


  在从无到有的使用Axis2Webserivce框架做示例的过程中,反复阅读了本文上面的三篇文章,关于Webservice应用开发流程如上示,而Axis2提供的强大功能,还需要话更多的时间,精力不断学习和实践,另外要不断理解Webservice的原理,这里主要指Java开发Webservice。

 总结一下:

 1.服务程序对外提供接口,接口方法的实现通过实现类隐藏提供,这样服务端的业务发生改变不用影响到客户端的使用;

 2.服务程序对外接口要描述清晰,功能具体

 3.service.xml配置文件要组织合理,避免配置膨胀

 下面是一个服务组的services.xml文件配置:

 

MoneyService POJO Service
com.axis.service.MoneyService

这是一个提供文件写入的服务,客户端将本地文件写入远程服务器

com.axis.service.FileTransportImpl

  4.Webservice真应了《JavaWebSererSOAP》作者所言,说起来容易,实践起来真心不易。

   初次接触Webservice开发,路还很长。

   PS:希望有Java开发Webservice方面经验的朋友指点帮助。

 

转载地址:http://mgqzx.baihongyu.com/

你可能感兴趣的文章
【http】post和get请求的区别
查看>>
EL表达式无法显示Model中的数据
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
chm文件打开,有目录无内容
查看>>
whereis、find、which、locate的区别
查看>>
一点不懂到小白的linux系统运维经历分享
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
nagios监控windows 改了NSclient++默认端口 注意事项
查看>>
干货 | JAVA代码引起的NATIVE野指针问题(上)
查看>>
POI getDataFormat() 格式对照
查看>>
nginx rewrite
查看>>
前端安全系列(一):如何防止XSS攻击?
查看>>