WebService是SOA的一种较好的实现方式.docVIP

  • 6
  • 0
  • 约3.31万字
  • 约 28页
  • 2015-10-15 发布于重庆
  • 举报
WebService是SOA的一种较好的实现方式

WebService是SOA的一种较好的实现方式,它将应用程序的不同功能单元通过中立的契约(独立于硬件平台、操作系统和编程语言)联系起来,使得各种形式的功能单元更好的集成。 W3C对他的定义是: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages...... Web service是一个软件系统,为了支持跨网络的机器之间相互操作交互而设计。它有一个机器可识别的描述格式(特别是WSDL)。不同的系统之间可以通过SOAP消息在规定的方式下相互调用。(英文不好,请指正!) 简单的说,WebService是一种独立于特定语言、特定平台,基于网络的、分布式的模块化组件。是一个能够使用xml消息通过网络来访问的Interface,这个Interface描述了一组可访问的操作。 WebService一般分为两种: REST式WebService,基于HTTP协议; RPC式WebService,基于SOAP协议,不过SOAP也是基于HTTP传输的。 狭义上的WebService是指第二种RPC式的WebService,也就是我们常说的那种。 JAVA中有三种WebService规范,分别是JAX-WS(JAX-RPC)、JAX-RS、JAXMSAAJ。 这里先说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搞定。运行main方法,在浏览器里输入”http://localhost:8080/com.why.webservice.Hello?wsdl “ 会看到你的WSDL信息。 不过需要注意一 下, 有的同学如果不加@SOAPBinding(style = SOAPBinding.Style.RPC)这行代码会报错: ernal.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),问题解决! Java代码 package com.why.webservice; import javax.jws.WebService; import javax.xml.ws.Endpoint; /** * * @author why * */ @WebService public class Hello { public String sayHello(String name) { return Hello + name; } public static void main(String[] args){ Endpoint.publish(http://localhost:8080/com.why.webservice.Hello, new Hello()); System.out.

文档评论(0)

1亿VIP精品文档

相关文档