`
sun_cat
  • 浏览: 72718 次
社区版块
存档分类
最新评论

axis快速开发ws 服务端 客户端心得

    博客分类:
  • java
阅读更多

之前也在网上看了些axis开发ws的入门文章,发现哪些文章可以说真的是入门级的,没有一点的实际应用。我看后不是很明白,自己动手弄了2天,终于算是弄通了,再这里简单的说下自己的思维感受。
首先要确定自己的入口有什么东西,简单的分下类吧

第一种 服务端的程序别人(暂且称为A公司)已经做好了,而你要做的只是客户端,那么你就需要A公司提供给你wsdl文件,这样你可以根据wsdl文件用axis提供的工具wsdl2java 生成客户端需要的所有代码,这个应该是开发客户端最快捷的方式。当然如果A公司没有提供给你wsdl文件,而是接口文档的话那就麻烦你一点一点的写吧:)
当然如果A公司能提供给你wsdl生成好的客户端 那是再好不过了


第二种 你要开发服务端,对于初学者这种情况我想还是从写接口开始比较好。
有些人可能会喜欢写了wsdl文档后自动生成服务端的代码,这个我觉得也不错,不过我可不会从0开始写wsdl文档。另外在这个工程中可能会遇到包结果的问题,比如我想把bean类,接口类,实现类放到不同的包中,这种情况下我还不知道怎么弄:(。继续努力
如果你开发服务端的话,你就可以用axis的工具类java2wsdl生成wsdl文件了


大家可能也注意到了,关联客户端和服务端的是wsdl文件,所以这个wsdl文件
很重要哦

说下我的服务端主题开发过程吧,
1 服务端的代码自己开发,
2 用java2wsdl生成wsdl文件,
3 根据wsdl文件用wsdl2java生成客户端需要的代码,以及部署所需要的部署文件wsdd,大家注意了wsdd文件属于服务端的部署文件,如果大家在生成客户端代码的时候一块生成了wsdd文件,那么生成的代码中就包括了服务端和客户端的所有代码,请大家注意区分。另外自动生成的服务端代码是没有必要用的,用第一步中自己写好的就可以了,但是这个时候wsdd文件中的className 参数项需要修改成自己的实现类就可以了
4 根据wsdd文件用axis的工具类adminClient 自动部署到tomcat的server-config.wsdd中。其实也可以自己将wsdd文件中的内容追加到server-config.wsdd中对应客户端的开发就简单了,获得wsdl生成的客户端后直接调用就可以了


下面根据代码来做详细的说明吧

服务端的开发

首先编写自己的接口类以及接口中用到的bean类,接口类为com.pig.server.intf.ProductManager

java 代码
  1. package com.pig.server.intf;   
  2.   
  3. import com.pig.server.bean.BindedServiceOrderRequestRequest;   
  4. import com.pig.server.bean.BindedServiceOrderRequestResponse;   
  5.   
  6. /**  
  7.  *  
  8.  * author lzh  
  9.  **/  
  10.   
  11. public interface ProductManager {   
  12.   
  13.     public BindedServiceOrderRequestResponse bindedServiceOrderRequest(BindedServiceOrderRequestRequest request);   
  14. }   

里面所依赖的2个bean类

java 代码
  1. package com.pig.server.bean;   
  2.   
  3.   
  4. /**  
  5.  * 捆绑代收费业务订购请求  
  6.  *   
  7.  */  
  8. public class BindedServiceOrderRequestRequest {   
  9.   
  10.     private String transactionID;   
  11.   
  12.   
  13.     public BindedServiceOrderRequestRequest() {   
  14.     }   
  15.   
  16.     public String getTransactionID() {   
  17.         return transactionID;   
  18.     }   
  19.   
  20.     public void setTransactionID(String transactionID) {   
  21.         this.transactionID = transactionID;   
  22.     }   
  23.   
  24. }  
java 代码
  1. package com.pig.server.bean;   
  2.   
  3. /**  
  4.  *   
  5.  */  
  6. public class BindedServiceOrderRequestResponse {   
  7.   
  8.     private String spID;   
  9.   
  10.     private String transactionID;   
  11.   
  12.     public BindedServiceOrderRequestResponse() {   
  13.     }   
  14.   
  15.     public String getSpID() {   
  16.         return spID;   
  17.     }   
  18.   
  19.     public void setSpID(String spID) {   
  20.         this.spID = spID;   
  21.     }   
  22.   
  23.     public String getTransactionID() {   
  24.         return transactionID;   
  25.     }   
  26.   
  27.     public void setTransactionID(String transactionID) {   
  28.         this.transactionID = transactionID;   
  29.     }   
  30.   
  31. }  

 写服务端的实现类com.pig.server.impl.ProductManagerImpl

java 代码
  1. package com.pig.server.impl;   
  2.   
  3. import com.pig.server.bean.BindedServiceOrderRequestRequest;   
  4. import com.pig.server.bean.BindedServiceOrderRequestResponse;   
  5. import com.pig.server.intf.ProductManager;   
  6.   
  7. /**  
  8.  *  
  9.  * author lzh  
  10.  **/  
  11.   
  12. public class ProductManagerImpl implements ProductManager{   
  13.   
  14.     public BindedServiceOrderRequestResponse bindedServiceOrderRequest(   
  15.             BindedServiceOrderRequestRequest request) {   
  16.         BindedServiceOrderRequestResponse response=new BindedServiceOrderRequestResponse();   
  17.         response.setSpID("01");   
  18.         response.setTransactionID(request.getTransactionID());   
  19.         return response;   
  20.     }   
  21.   
  22. }  

服务端的代码部分就写完了,下一步就是axis工具类的运用了

要下班了,下周一有时间再继续写

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics