EJB-04:WEB Service

一、Web Service的概念和原理

1、什么是Web Service?

WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。

WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。

WebService=WSDL+SOAP+UDDI(webservice的注册)

  Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。

  Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。

2、Web Service的优点

  (1) 可以让异构的程序相互访问(跨平台)

  (2) 松耦合

  (3) 基于标准协议(通用语言,允许其他程序访问)

3、Web Service的基本原理

  (1) Service Provider采用WSDL描述服务

  (2) Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)

  (3) Service Requestor在UDDI服务器上查询并 获取WSDL文件

  (4) Service requestor将请求绑定到SOAP,并访问相应的服务。

Tips:WSDL与SOAP

  WSDL:Web Service Description Language(Web服务描述语言)。

  作用:

  (1) 描述服务是什么,服务提供的操作(方法名,方法参数,返回值,数据类型等);

  (2) 如何访问该服务→binding

  (3) 服务访问的地址→service

  Banding:定义Web服务访问采用的协议(SOAP)

  SOAP:Simple Object Access Protocol(简单对象访问协议)

4、如何编写Web Service?

  (1) 先编写Java类,然后利用工具生成WSDL文档以及相关文档

    或先编写WSDL文档,后利用工具生成Java类

  (2) @Web Method标注的方法要发布到WSDL描述中,如果没有任何方法加注该标注,则所有方法均发布到WSDL上。

  @WebService标注该Session Bean要发布Web Service。

 

二、如何访问Web Service?

  Dynamic Proxy:动态代理

  Dynamic invocation intenface:动态调用接口

  Dynamic Proxy:

  URL:Service的WSDL地址

  QName:全限定名

  Namespace:目标名字空间,Web Service的名字

  Service类:javax.xml.ws.Service

  实例:

Service greeterService=Service.create(wsdlLoction,serviceQName);

  helloWSBean hws=greeterService.getPort(helloWSBean.class)

  System.out.println(hws.sayHello());

 

EJB中使用WebService

@WebService(serviceName="",portName=""),使用这个标注可以将SessionBean中用@WebMethod标注来表示的方法发布成WebService

 

@Stateless

@WebService(serviceName="Greeter",portName="GreeterPost")

public class HelloSessionBean implements HelloSessionRemote {

    @WebMethod

    public String hello(String name) {

        return "Hello world "+name+"!";

    }

}

 

三、Web Service总结

1、Web Service的优缺点

优点:① 跨平台,可以穿透防火墙,构建一个分布式系统

    ② 基于标准协议(HTTP,SOAP,WSDL,XML)

    ③ 松耦合

缺点:性能低下(SOAP协议XML解析,采用HTTP协议等原因)

分布式系统(EJB,DCOM,CORBA,Web Service)缺点:

  ① EJB不能穿透防火墙,而且限制编程语言只能是Java

  ② 技术不完全成熟

2、Web Service应用场合

  (1) 用于企业内部的应用集成

  (2) 用于企业间的应用集成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值