`
cuker919
  • 浏览: 90246 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

axis1.4 websercice服务客户端开发

 
阅读更多

1、由于项目要用到axis1.4搭建服务端,而现在都流行axis2,相比是较老的技术了。这几天刚好有时间看看,入门入门。

2、由于通信双方都是基于soap协议,而soap是基于http传输的。所以先研究研究什么是soap协议,在网上找了很多文档,写的有点乱,选了一个写得比较好。

WebService_SOAP

下载地址:http://download.csdn.net/detail/cuker919/5308642

3、看了soap后,再了解了解wsdl语言。在网上找了很多文档,写的有点乱,选了一个写得比较好。

Web_Service描述语言_WSDL_详解.pdf

http://download.csdn.net/detail/cuker919/5308649


4、前面打好基础之后,接下来就是研究研究axis1.4怎么用了,同样的在网上找找高手写的文档。

axis_WebService_-_开发指南.docx

http://download.csdn.net/detail/cuker919/5308603


5、总结上面的学习,搭建axis1.4服务端

  这事我搭建好运行正常的项目:http://download.csdn.net/detail/cuker919/5308625

 第一步:由于要生成server-config.wsdd,所以要发布自己搭建的项目到tomcat里面部署,再用命令才能生成。

     这里就不能简简单单的搭建java工程了,因为要打包,ant感觉好久不用就忘了,maven好用。

     所以就用maven搭建工程,好发布。

 第二步:搭建好工程后,按axis_WebService_-_开发指南.docx 里面的(二、用wsdd(Web Services Deployment Descriptor)方式发布WebService;编写相应的java类,然后编写对应的deploy.wsdd,请看项目里面的该文件。


 第三步:生成相应的server-config.wsdd

     写完配置后,就需要用axis提供的AdminClient工具类帮我们发布WebService,直到生成server-config.wsdd。-- 用maven打包,然后发布到tomcat/webapp里面,然后在CMD下面输入cd到tomcat/webapp/WEB-INF              

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/myaxis1/services/AdminService deploy.wsdd


 第四步:在WebBrowser的地址栏输入:

http://localhost:8080/myaxis1/servlet/AxisServlet

你就可以看到如下效果:

And now... Some Services

  • HelloWorldWSDD (wsdl)
    • getName
    • getAge
  • AdminService (wsdl)
    • AdminService
  • Version (wsdl)
    • getVersion

刚才在deploy.wsdd中指定的WebService就在上面出现了,还有暴露出来的方法。点击wsdl就可以看到刚才一样熟悉的wsdl的xml文档。


  第五步:编写复杂类型对象

     按上面的第二步到第四步再走一遍,然后生成server-config.wsdd,用对比工具对比发现,与第一次生成的wsdd文件基本一样,就service多发布一个,然后把这段copy到第一次的server-config.wsdd文件里面即可。

<service name="ManagerUser" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
<parameter name="className" value="com.cuker.service.ManagerUser"/>
<beanMapping languageSpecificType="java:com.cuker.entity.User" qname="ns1:User" xmlns:ns1="urn:User"/>
</service>

  第六步:根据已经获取的WSDL文件,使用下面的工具可以生成服务端和客户端,还省了编码,

工具下载:http://download.csdn.net/detail/cuker919/5349738

把里面的路径改成自己机子上相对的路径即可。

  生成客户端后,直接放在自己的工程里面,直接就可以调用服务端了:如下代码

public class Test {

public static void main(String args[]){
String url = "http://localhost:8080/myaxis1/services/***Service?wsdl";
URL serviceUrl;
try {
serviceUrl = new URL(url);
***ServiceSoapBindingStub binding = (***ServiceSoapBindingStub) new ***SServiceImplServiceLocator().get***Service(serviceUrl);

UserBean user = new UserBean();
user.setAreacode("9999");
user.setCharging("");
user.setPassword("123456");
user.setTeam_id(-1);
user.setUserid("ytest");
user.setUsertype(1);

OrderBean orderbean = new OrderBean();
orderbean.setProductid("001");
OrderBean[] order =new OrderBean[]{orderbean};


ResultBean bean = binding.createUser(user, order, "20130408164312");

System.out.println("返回码:" + bean.getReturnCode()+" 返回消息:"+bean.getReturnMessage());

} catch (Exception e) {
e.printStackTrace();
}
}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics