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

Webservice 接口开发简单例子

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Webservice是系统对外的接口,比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。

附件是使用Axis编写WebService的例子,本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个"Hello"字符串,没有参数,第二个函数接受一个字符串作为参数,返回"Hello 参数值",该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。

以下是操作步骤:

1、编写服务代码

      服务代码提供了两个函数,分别为sayHello和sayHelloToPerson,在HelloService.java类中

2、发布WebService

      要将上边写的HelloService类发布为WebService,需要先搭建Web应用。下面是在Tomcat下使用Axis创建WebService服务的例子。

3、在Tomcat下创建Web应用

     在该例子中,在Tomcat下创建了一个context path为test_webservice的WEB应用。

     (1) 在Tomcat的webapps下创建如下文件系统

          test_webservice

               WEB-INF

                    lib

                    Classes

        (2)在WEB-INF文件夹下创建web.xml文件,在web.xml中主要是配置axis。

     4、复制axis相关的jar文件

     将axis的相关jar文件复制到WEB-INF\lib文件夹下。这些文件包括:

activation.jar
axis.jar
axis-ant.jar
axis-schema.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mailapi.jar
saaj.jar
wsdl4j-1.5.1.jar
xmlsec-1.3.0.jar    

5、测试发布的WEB应用 

 启动Tomcat服务,打开IE浏览器,访问http:host:port/test_webservice/services,

如果看到如下界面就说明AXIS部署成功了。 

6、发布WebService

     发布WebService需要使用现有的AdminService来实现,这里我写了一个批处理文件来发布WebService,以后如果需要发布其他文件,只需要修改相应的参数就可以了。

(1)创建deploy.wsdd文件。

(2)创建发布WebService服务的批处理文件deploywebservice.bat。

     其中E:\workspace\Libwebservice是存放axis对应的jar文件的文件夹,现在将所有的jar文件都加入到此文件夹中。

     -l后的参数是本地要发布WebService的AdminService对应的访问地址。

     最后deploy.wsdd是对应的配置文件名称。

(3) 将deploy.wsdd文件和deploywebservice.bat文件复制到同一个文件夹下,执行deploywebservice.bat批处理文件,就可以将deploy.wsdd中描述的Java类发布为WebService。发布完成之后再访问http://host:port/test_webservice/services 

从上图可以看出,发布成功后,多了一个HelloServices的服务。这样就说明HelloService发布成功了。

7、查看HelloServices的wsdl

     访问http://host:port/test_webservice/services/HelloServices?wsdl可以看到wsdl的内容

转载于:https://my.oschina.net/chendongj/blog/779861

相关文章:

  • Silverlight 可以支持windows2000了
  • 龙威零式_团队项目例会记录_14
  • 曾经的熟悉,如今的陌生
  • BlueDroid介绍 【转】
  • NT的密码究竟放在哪
  • Linux桌面版横评:六、红旗桌面5.0
  • HBase跨版本数据迁移总结
  • 旧城镇文兴小学远程教育网点学校工作领导组
  • Struts2 中#、@、%和$符号的用途
  • 项目中常用的几个JS
  • 【uva 658】It's not a Bug, it's a Feature!(图论--Dijkstra或spfa算法+二进制表示+类“隐式图搜索”)...
  • 一个CU的嵌入式BLOG地址
  • React系列之 Redux 架构模式
  • 新Delphi隐藏当前进程
  • [转]iSCSI完全指南
  • 【Amaple教程】5. 插件
  • 【译】理解JavaScript:new 关键字
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • dva中组件的懒加载
  • express.js的介绍及使用
  • Golang-长连接-状态推送
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java 23种设计模式 之单例模式 7种实现方式
  • JAVA 学习IO流
  • JavaScript设计模式系列一:工厂模式
  • Mithril.js 入门介绍
  • pdf文件如何在线转换为jpg图片
  • PHP那些事儿
  • SpingCloudBus整合RabbitMQ
  • tab.js分享及浏览器兼容性问题汇总
  • 大主子表关联的性能优化方法
  • 力扣(LeetCode)21
  • 码农张的Bug人生 - 初来乍到
  • 排序算法学习笔记
  • 我的面试准备过程--容器(更新中)
  • raise 与 raise ... from 的区别
  • #define用法
  • #WEB前端(HTML属性)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (区间dp) (经典例题) 石子合并
  • (三)模仿学习-Action数据的模仿
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • .NET Framework .NET Core与 .NET 的区别
  • .Net7 环境安装配置
  • ??javascript里的变量问题
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka