当前位置: 首页 > news >正文

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();
        }      
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/cuker919/archive/2013/04/27/4878532.html

相关文章:

  • TCp
  • 黑马Java学习笔记之-----Java常见异常总结 (转)
  • ALVIX无人机来了,拥有环形收纳可变形旋翼
  • 错误信息原因[置顶] Android开发错误汇总(转)
  • Python中cPickle
  • SQL Server系列之 在发布复制模式下移动日志文件
  • MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案
  • 控件焦点_转移
  • 第四次冲刺
  • 数据恢复软件如何换机使用?
  • C#格式化字符串,日期,时间,货币[转]
  • 共享充电宝也来跑马圈地 这只风口上的猪能飞的好吗
  • 阿里云移动数据分析服务使用教程
  • JavaScript教程网
  • WCF与ASP.NET Core性能比较
  • [PHP内核探索]PHP中的哈希表
  • [LeetCode] Wiggle Sort
  • 【391天】每日项目总结系列128(2018.03.03)
  • CentOS 7 修改主机名
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • gcc介绍及安装
  • iOS | NSProxy
  • iOS小技巧之UIImagePickerController实现头像选择
  • JAVA多线程机制解析-volatilesynchronized
  • Js基础——数据类型之Null和Undefined
  • 第十八天-企业应用架构模式-基本模式
  • 前端之React实战:创建跨平台的项目架构
  • 强力优化Rancher k8s中国区的使用体验
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深度解析利用ES6进行Promise封装总结
  • 探索 JS 中的模块化
  • 学习Vue.js的五个小例子
  • 智能合约Solidity教程-事件和日志(一)
  • 湖北分布式智能数据采集方法有哪些?
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (Forward) Music Player: From UI Proposal to Code
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (四) 虚拟摄像头vivi体验
  • (转)人的集合论——移山之道
  • .“空心村”成因分析及解决对策122344
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net Core和.Net Standard直观理解
  • .net framework profiles /.net framework 配置
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .Net面试题4
  • .net下简单快捷的数值高低位切换
  • @EnableWebMvc介绍和使用详细demo
  • @JSONField或@JsonProperty注解使用
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ C++ ] STL---仿函数与priority_queue
  • [2544]最短路 (两种算法)(HDU)
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案