領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多如今,Sun 認真對待開源,使用者似乎也開始認真對待 Sun 的開源了。
GlassFish 雖然後進入開源應用伺服器領域,但似乎正在獲得認可。更重要的是,它實際上相當不錯。Interface21 的幾位成員,包括 Costin 和 Juergen,都考察了 GlassFish 並表示讚賞(儘管我們尚未在生產環境中使用過它)。據我所聞,其效能非常出色——這很可能很大程度上歸功於基於 NIO 重構的 Servlet 引擎。JPA 實現 TopLink Essentials 也應該表現良好,因為它基於成熟且高效能的 TopLink 引擎。
GlassFish 已經有實際被採用的證據:例如,著名的澳大利亞酒店預訂服務 Wotif.com 就是一個例子。根據我最近澳大利亞之行的經歷,Wotif 是那種普通人(而不僅僅是技術人員)會談論的網站,就像 eBay 和 lastminute.com 一樣。
當然,Wotif.com 也在使用 Spring。我認為 Sun 在企業 Java 領域變得更加重要的部分原因是,他們現在更能融入更廣闊的世界,並且願意採納並響應外部意見。
因此,Sun 已經在多個領域(尤其是在 Web 服務堆疊中)為 GlassFish 提供 Spring 支援。這尤其有趣,因為 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(GlassFish 中的 JPA RI 和持久化引擎)做了很多工作。Mike Keith,EJB 3.0 聯合負責人、TopLink 核心開發者和 ORM 方面的全能專家,提供了極大的幫助,我們發現整個 TopLink 團隊反應迅速。