加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

最简单的WebService开发

发布时间:2020-12-16 23:41:08 所属栏目:安全 来源:网络整理
导读:??? 简单的说,WebService是一种独立于特定语言、特定平台,基于网络的、分布式的模块化组件。是一个能够使用xml消息通过网络来访问的Interface,这个Interface描述了一组可访问的操作。 WebService一般分为两种: ??? REST式WebService,基于HTTP协议; ???

??? 简单的说,WebService是一种独立于特定语言、特定平台,基于网络的、分布式的模块化组件。是一个能够使用xml消息通过网络来访问的Interface,这个Interface描述了一组可访问的操作。


WebService一般分为两种:

??? REST式WebService,基于HTTP协议;

??? RPC式WebService,基于SOAP协议,不过SOAP也是基于HTTP传输的。

? 狭义上的WebService是指第二种RPC式的WebService,也就是我们常说的那种。


JAVA中有三种WebService规范,分别是JAX-WS(JAX-RPC)、JAX-RS、JAXM&SAAJ。


??? 这里先说JAX-WS(Java API For XML-WebService),JDK1.6 自带的版本为JAX-WS2.1,其底层支持为JAXB。早期的JAVA Web服务规范JAX-RPC(Java API ForXML-Remote Procedure Call)目前已经被JAX-WS 规范取代,JAX-WS 是JAX-RPC 的演进版本,但JAX-WS 并不完全向后兼容JAX-RPC。

??? 废话不多说了,先来写一个最简单的例子:

服务器端:

??? 在想要发布为WebService的类上加上注解@WebService,这个类的方法就变为WebService的方法了,再通过Endpoint的publish方法,发布这个服务,到此,一个最简单的WebService搞定。直接在Hello类里面右键》》run as》》java application,运行main方法,在浏览器里输入http://localhost:8080/com.why.webservice.Hello?wsdl?会看到你的WSDL信息。


??? 不过需要注意一下,有的同学如果不加@SOAPBinding(style = SOAPBinding.Style.RPC)这行代码会报错:

com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.why.webservice.jaxws.SayHello is not found. Have you run APT to generate them?

网上资料说只要将JDK升级到1.6u17就可以了,我直接升级到了1.6u22(1.6.0_22-b04),问题解决!

?

?

客户端:

??? 在命令行输入命令 wsimport -p [包名] -keep [发布的服务地址?wsdl] 生成客户端代码,如生成本例的客户端代码”wsimport -p com.why.client -keep http://localhost:8080/com.why.webservice.Hello?wsdl“,当然,前提是你已经配好了JAVA环境变量。控制台会显示



将E:testcomwhyclient下的java文件拷贝到src的com.why.client包下,利用这些生成的客户端代码,就可以调用这个WebService服务了:

?

?

右键执行代码,输出:Hello why

原文地址:http://wuhongyu.iteye.com/blog/807470

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读