摘要:

实现webservice,spring ws,XFire实现方法未实现。(记得补上~)

1 概述

  1.1关键技术

        

  1. SOAP:简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

  2. WSDL:用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

  3. UDDI:一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

  4. XML

  1.2优点

  1)软件和数据重用

2)应用程序集成

3)B2B的集成

4)跨防火墙的通信

2 目前实现技术

比较流行的技术有:Jaxws ,Axis2 , spring ws ,,XFire

Eclipse 自带支持axis2,对于XFire需要自行配置。

对比如下:http://blog.csdn.net/itwit/article/details/7576562

3 技术实例(eclipse3.6)

如果只是需要快速搭建webservice,建议用Jaxws,不需要任何配置,直接java代码搞定;

Eclipse自带的axis2,使用axis2搭建webservice也很方便,不过相对上面还是复杂些;

其他还未实验,待更新

3.1 Jaxws实现实例

Sun公司自己实现的webservice,已经包含在jdk里面了。

工程目录:

TimeServer.java类

TimeServerImpl.java类

TimeServerPublisher.java类

TimeClient.java类

验证:

启动TimeServerPublisher.java类

启动TimeClient.java类

输出:

注意:

发布的网址URI,与TimeClient.java类中创建server对应,这是server内部命名空间

这里发布的网址是对外的,与TimeClient.java类中创建server对应,

3.2 Axis2实现实例

3.2.1不依赖eclipse创建webservice:

http://www.cnblogs.com/qc-hao/archive/2013/02/02/2889800.html

3.2.2 java远程调用webservice:

Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。wsdl2java.bat命令可以在%Axis2安装目录%bin目录中找到。在使用wsdl2java.bat命令之前需要设置AXIS2_HOME环境变量,配置如图:

调用WebService的代码生成:

把C:\apache-tomcat-7.0.39\webapps\axis2-1.6.2\bin\wsdl2java.bat拖到cmd命令行中

紧接着添加"-uri http://localhost:8080/axis2/services/HelloService?wsdl -p client -s -o service" 回车后在如下目录中就可以找到HelloServiceStub.java类,如图所示

生成了HelloServiceStub.java类后,就可以在Eclipse中使用客户端调用webservice了。然后建立动态web项目,导入Axis2包,工程目录如下:

HelloServiceStub.java类即为刚刚生成的HelloServiceStub.java类;

TestService.java类,代码如下:

注: HelloService即为"3.3.1不依赖eclipse创建webservice:"中的HelloService,储存于C:\apache-tomcat-7.0.39\webapps\axis2\WEB-INF\pojo目录下,启动包含此目录的tomcat,再运行TestService.java类,即可得到输出结果。

输出结果:

3.2.3 在eclipse中创建webservice:

  1. 建立动态web project,项目图如下:

  2. 添加axis的lib下的jar包

  3. 修改编译class输出路径

  4. 编写service类

  5. 发布该类为webservice

  6. 建立客户端,即为下面验证service是否成功

  7. 发布service并建立客户代码

    选择java proxy会自动生成wsClient工程,工程目录如下:

  8. 选择访问的方法

  9. 启动server,发布service

3.2.5 验证webservice

方法一:

浏览器输入:http://localhost:8080/wsClient/sampleHelloServiceProxy/TestClient.jsp

显示

输入username,显示result

方法二:

中的webservice Explore

输入webservice对应的wsdl路径,即可验证

方法三:

首先发布webservice,运行"3.3.3 在eclipse中创建webservice:"所述客户端,输出结果:

3.3 spring ws实现实例

http://static.springsource.org/spring-ws/sites/1.5/reference/html/tutorial.html

3.4 XFire 实现实例

http://www.cnblogs.com/simle/archive/2011/10/31/2230091.html

4 常用webservice汇总

http://developer.51cto.com/art/200908/147125.htm

http://www.cnblogs.com/tianguook/archive/2010/09/29/1838469.html

转载于:https://www.cnblogs.com/huxiaoyun90/p/3210699.html

Webservice 实践相关推荐

  1. java的WebService实践(cxf)

    java的WebService实践(cxf) Java发布WebService,结合Spring,通过cxf的方式 难点:1.引用什么jar包: 1.创建接口 源码如下: package com.na ...

  2. Webservice实践(二)Webservice 客户端开发

    现在我们首先进行客户端开发的实践,从客户端实践来了解一下webservice的应用场景.比如说现在已经有一个webservice服务,提供的翻译方面的功能服务(主要是免费的webservice接口现在 ...

  3. 用axis开发webservice实践

    什么是SOAP? SOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议.最初由微软和Userland Software提出,随着不断地完善和改进,SOAP很快被业界广泛应用. 什么是Axi ...

  4. WebService 教程(包含项目实践)

    情景引入: 时间:早晨 8 : 00 am 小白:起床起床,,,公司又来需求了,你还在睡觉,快点起来~! 我:大惊小怪,又怎么了呢?小白,别一惊一乍的,打扰我的美梦 小白:公司给了个新需求,你还记得, ...

  5. 实践基于REST风格的Webservice(PHP,C#)

    概念: WEB服务的风格,从维基百科上查了一下,有不下十几种,但是比较常用的就是REST和RPC.其中,基于SOAP协议的Webservice就是RPC风格的. REST全称Representatio ...

  6. 有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文

    VBA实践+excel英文逐句自动有道翻译为中文 有一个需求是这样的,如下图所示,在一个excel工作表中,B列是英文,每一个单元格一句英文,在C列要填英文对应的有道机译结果.为保证准确度,要求必须一 ...

  7. (二)利用Java WebService调用天气预报实践

    最近要和其他业务系统进行数据交换,选择了webservice方案,于是查了一下网上的用法.首先是做一个天气的查询例子,看着挺简单,可实际动手做起来发现坑很多,费了半天劲终于调通了,于是记录下来. 1, ...

  8. java webservice天气_利用java webservice调用天气预报实践

    最近要和其他业务系统进行数据交换,选择了webservice方案,于是查了一下网上的用法.首先是做一个天气的查询例子,看着挺简单,可实际动手做起来发现坑很多,费了半天劲终于调通了,于是记录下来. 1, ...

  9. WebService传输DataSet的一点想法和实践-.NET教程,Web Service开发

    其实这个标题很大,实现起来也可以有许多的办法.甚至,应否这样做也许都能惹出许多的争论(比如,为什么用ws而不是remoting? 为什么传dataset而不是entity[]?). 由于ds的体态丰腴 ...

  10. java webservice 线程_编程实践笔记{Java 线程 并发处理 Webservice}

    1,保证线程安全的三种方法: a,不要跨线程访问共享变量 b,使共享变量是final类型的 c,将共享变量的操作加上同步 2,一开始就将类设计成线程安全的, 比在后期重新修复它,更容易. 3, 编写多 ...

最新文章

  1. antd 上传进度_antd vue upload组件使用customRequest上传文件显示文件上传进度
  2. 解决popup不随着window一起移动的问题
  3. mysql事务隔离级别详解_高性能MySQL-详解事务与隔离级别
  4. android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)
  5. 如何转型成为一家真正发挥大数据作用的 “数据驱动型公司”?
  6. 在ubuntu下安装和配置vsftpd
  7. QCC3020/QCC3040 TWS耳机按键切换EQ,APP切换EQ功能实现
  8. CDN (Content Delivery Network 内容分发网络)
  9. 一维搜索---黄金分割法
  10. 北京大学计算机学院刘利,信息科学学院 科研动态 深化新文科计算机教学改革,实施分类分层次教学体系研讨会在京召开...
  11. Go 每日一库之 go-flags
  12. 批处理检测局域网电脑是否开机(转载)
  13. Eclipse 更换皮肤
  14. 怎么给旧版本ios装旧版本软件
  15. UltraEdit 25以后的版本 绕过试用期
  16. 这里是Python爬虫的起点,抢占资源啦(Python学习教程)
  17. iOS安全–在非越狱平台进行越狱开发(附分析流程)
  18. “玲珑杯”ACM比赛 Round #4
  19. SpringMVC 之类型转换Converter详解转载
  20. python nonzero()函数的用法

热门文章

  1. Springboot整合JasperReport报表以及报表打印功能
  2. ArrayList源码详解篇
  3. linux netcat命令实例
  4. html图片透明度变化,css,_CSS3动画实现图片透明度变化在微信上无效的解决方案,css - phpStudy...
  5. final可以修饰哪些java名词_Java关键知识点 - Java final关键字到底修饰了什么?
  6. 在VMware安装Ubuntu 16.04
  7. mfc用数组怎么存储句柄_指南手机存储不足怎么办?用好这份清理指南你的手机还能再战三年...
  8. oracle如何储存超长汉子_oracle Clob 存储超长字符
  9. 如何确定autosar的版本_什么是AUTOSAR?AUTOSAR的概要、背景以及目的-汽车电子-与非网...
  10. python中3个线程并发实现_Python3线程中的异步并发是什么?