Web服务在EJB 2.1到EJB 3.0中的改变

http://tech.ddvip.com   2007年09月02日    社区交流

内容摘要:本文将会介绍在EJB3.0里面Web service的创建和之前相比较是如何改变的……

  把POJO's作为EJB来处理的能力实际上是前面所提到的注释的概念的结果,同时也是已经在核心Java5 平台和Java 5 Enterprise Edition中都进行了约束的范式转移。但是现在,让我们看看我们手边的工作,列表1.1展示的是在EJB3.0 中,一个Web servicec看起来是怎么样的。

  列表 1.1 Web Service EJB 3.0

  import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
  @Stateless
@WebService(serviceName="Weather", portName="WeatherPort")
public class WeatherBean {
  @WebMethod
  public double hiTemp(String city) {
    // Perform lookup to DB or some other data source
    return temp;
  }
  @WebMethod
  public double lowTemp(String city) {
    // Perform lookup to DB or some other data source
    return temp;
  }
  @WebMethod
  public double avgTemp(String city) {
    // Perform lookup to DB or some other data source
    return temp;
  }
  // This method will not be exposed through the web service
  public double fahrenheitToCelsius(double fahrenheit) {
    // Perform conversion
    return celsius;
  }
  // This method will not be exposed through the web service
  public double celsiusToFahrenheit(double celsius) {
    // Perform conversion
    return fahrenheit;
  }
  }

  以前的Web service EJB最令人惊叹的地方应该就是它的简洁,但是不要让它的简短愚弄了你。在EJB2.1中所提供的相同的功能也在这个单独的文件的各个部分出现了。 你会注意到这个源文件中的很多地方都用到的@符号。这些标记表示的是Java注释,这些java注释在后来将会被底层的EJB应用服务器用来产生预定的结果。请注意到,没有这些注释,我们的这个类只是一个POJO,因为它没有利用任何特定的API或者构造。 它只是平淡而简单的商务逻辑。

  最顶端的注释——@Stateless 和 @WebService——表示的是这个类将会被用作揖个具有Web services功能的会话bean,而在@WebService旁边的属性,表示的是特定的Web services数据,这些数据在EJB2.1中是被放置在一个部署描述符中的。剩下的@WebMethod注释是用来指定哪些方法将会作为Web service接口被提供出来,换句话说,Web service接口就是那些使用一个用来描述EJB Web service的 WSDL契约的操作。

  这个例子解释了在EJB3.0中最基本的前提。其他的可供选择的方法可以包括同在EJB2.1中相同的方式来使用一个分隔端点接口,但是通过注释来链接它,并且,当然的,通过注释指定它的高级中间件属性——例如事务处理和安全证书——这些可能是你选择使用EJB Web services的最主要的原因。

  通过这个,我们可以总结一下我们对在为生产Web services的EJB模型里面发生的一些改变的看法,对于那些使用需要添加EJB提供的能力的Web serivcies ,这是必将带来受到欢迎的转移的过程,并且其他的一些选择的可能仍然在试图获取最简单的可能的机制来集成Web serivces到他们的Java项目中去。

来源:TechTarget    作者:Daniel Rubio    责编:豆豆技术应用

正在加载评论...