Apache Axis相关开发知识点

来源:互联网 发布:php精粹 编辑:程序博客网 时间:2024/05/29 16:48

    今天日常工作需要涉及到一个报文的数字签名技术,头给我解释了半天,算是明白了大概一个啥过程,中间报文有涉及到Apache Axis的内容,姐不太清楚,所以上网查了相关内容,做了一个简单的示例,特此记录,相关内容来自谷歌搜索到的第一个中文网页。

 

    Apache Axis感觉像是一个Web Service,客户端可以将自己的请求发送给服务端,然后服务端返回用户请求的答复即可,反正网上说的那些跨时代,创造历史的大意义姐不懂,姐就知道他用来干嘛就行了。

   搞不清楚跟SOAP扯上半毛钱关系,SOAP=Simple Object Access Protocol,简单对象访问协议,用于分布式环境的,轻量级的,基于XML进行信息交换的通信协议,按着这意思来,Apache Axis应该是使用的SOAP协议来完成通信,反正这些底层的东西姐不太感兴趣,所以姐注定只会一些皮毛。。。

 

    跳过了理论部分,直接上手,开发Apache Axis应用:

    At first,需要认清楚这是一个Web应用,so,他肯定要有一个服务端和一个客户端,服务端负责处理客户端传递过来的请求,客户端负责跟用户进行交互,so,首先搭建服务端:

      服务端的搭建:

      姐是搞Java的,姐从来没去公司做过实际的项目开发,姐只会学校的一些东西,so,必须使用姐最喜欢的服务器神器Tomcat来搭建这个服务器

      1. 下载Axis,目前版本为1.4,解压到任意文件夹

      2. 把axis下的webapps文件中的内容拷贝到tomcat目录中的webapps

      3. 添加环境变量:

                   AXIS_HOME      Axis的解压目录
                   AXIS_LIB      %AXIS_HOME%/lib
                   AXISCLASSPATH      %AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar

     4. 启动tomcat,打开http://localhost:8080/axis/,点击ValidationList两个链接,如果没有出现问题和警告,那么你就装好了这个服务器。

  

   你以为这么简单就搞定了,姐弄东西从来没有顺利过,不折腾,不成活,姐中间少了2个jar包,所以出现了Option模块的警告,姐去网上找了2个jar包放进去,哦了,终于没有问题。

 
-------------------------------------------------------------------
 
 发布服务

      服务器搭完之后,你就需要提供你的服务端应用了,也就是让客户端来调用的服务,随便写个包含system.out函数的Java类就ok了。

public class EchoService {      public String echoString(String name) {        System.out.println("The message is " + name);          return name;      }  }


   网上说有2种方法来发布这个服务,第二种姐嫌麻烦,直接用第一种,将这个java类改后缀名为.jws然后放在之前tomcat的那个axis文件夹下,华丽丽完成发布,至于为啥要改成Jws,姐表示不懂。。。

----------------------------------------------------------------------------------------------------

    客户端开发

      这个需要认真介绍一下,因为姐那个坑爹的数字签名就是用到了这个:

String retXml = "";try {//Create Service and Call object to set up a SOAP RPCService service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new URL(“http://localhost:8080/axis/EchoService.jws”));String[] req = { reqXml };retXml = (String) call.invoke("echoString", req);} catch (AxisFault e) {e.getMessage();} catch (ServiceException e) {e.getMessage();} catch (MalformedURLException e) {e.getMessage();}


  创建一个服务,然后用这个服务产生一个调用,设置需要访问的服务地址,给定需要的参数(req),最终调用服务端的服务,返回获得的结果,整个过程还算简单,所以轻轻松松就搞定了,哦啦啦~

 

 

 

 

 

 

0 0