领先一步
VMware 提供培训和认证,助您快速提升技能。
了解更多Sun 如今非常重视开源,用户似乎也开始认真对待 Sun 的开源项目了。
GlassFish 进入开源应用服务器领域较晚,但似乎正在获得关注。更重要的是,它实际上看起来相当不错。包括 Costin 和 Juergen 在内的多位 Interface21 开发人员都查看了 GlassFish 并给予了肯定(尽管我们尚未在生产环境中使用它)。据我所知,性能非常出色——这可能主要归因于基于 NIO 的重新设计的 servlet 引擎。JPA 实现——TopLink Essentials——也应该表现良好,因为它基于成熟且性能强大的 TopLink 引擎。
也有证据表明 GlassFish 确实得到了采用:例如,著名的澳大利亚酒店预订服务 Wotif.com 就使用了它。根据我最近去澳大利亚的旅行,Wotif 就像 eBay 和 lastminute.com 这样的网站,不仅技术人员,普通大众也会谈论它。
自然,Wotif.com 也在使用 Spring。我认为,Sun 在企业 Java 领域变得更具相关性的一部分原因在于,他们现在更加了解外部世界正在发生的事情,并且愿意接受并采纳这些信息。
因此,Sun 一直在努力为 GlassFish 提供 Spring 支持,尤其是在 Web 服务堆栈方面。这特别有趣,因为 GlassFish 的 Web 服务部分(自然)是 RI。
GlassFish 开发人员 Kohsuke Kawaguchi 最近在其博客中 谈到了 JAX-WS 堆栈中的 Spring 支持。这特别酷,因为它通过提供 Spring 2.0 命名空间处理程序来实现。请注意,它同时使用了 JAX-WS 命名空间和核心 Spring bean 命名空间,允许将 Spring bean 定义与 JAX 特定配置混合在一起。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:ws= "http://jax-ws.dev.java.net/spring/core"
xmlns:wss="http://jax-ws.dev.java.net/spring/servlet" ...>
<wss:bindings id="jax-ws.http">
<wss:bindings>
<wss:binding url="/stockQuote">
<wss:service><!-- nested bean is of course fine -->
<ws:service impl="foo.MyService">
<ws:handlers>
<ref bean="myHandler" />
</ws:handlers>
</ws:service>
</wss:service>
</wss:binding>
</wss:bindings>
</wss:bindings>
<bean id="myHandler" class="foo.MyHandler" />
</beans>
这与 Spring 远程调用相反,远程调用技术基本上是调用 Spring,而不是 Spring *导出* 服务,但它同样集成良好且易于使用。据推测,也可以导入其他 Spring 配置文件以利用现有的 bean 定义。
Kohsuke 补充了一个有趣的观点:
由于 Spring 支持是开放式的,因此可用于启用其他 JAX-WS 扩展。例如,我们可以使用它来配置 JMS 传输或配置 JSON 编码等。现在,Web 服务端点可以直接连接到 Spring 提供的所有内容:所有配置功能、声明式服务和企业集成……
有关 JAX-WS RI 的 Spring 集成的文档,请点击此处。
Spring 支持似乎在 GlassFish 社区中得到了很好的反响。也希望听到来自 Spring 社区的意见。您希望 GlassFish 中有哪些集成功能?WebLogic 中迄今发布的一些集成功能可能是一个不错的起点,例如增强的交易管理和 JMX/控制台集成。
当然,我们还在 Spring 2.0 中对 JPA 和 TopLink Essentials(GlassFish 中的 JPA RI 和持久性引擎)进行了大量工作。EJB 3.0 联合负责人、核心 TopLink 开发人员兼通用 ORM 专家 Mike Keith 提供了很大的帮助,我们发现整个 TopLink 团队都非常响应。