抢占先机
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 beans 命名空间的使用,允许 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 remoting 的方式相反,remoting 技术基本上调用 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 做了大量工作,TopLink Essentials 是 GlassFish 中的 JPA RI 和持久性引擎。 EJB 3.0 的联合负责人、核心 TopLink 开发人员和通用 ORM 大师 Mike Keith 提供了很多帮助,我们发现整个 TopLink 团队的反应非常迅速。