2012-08-16 63 views
0

我目前正在爲開發內部開發的大量Web應用程序開發翻譯服務。我面臨的問題是,我們已經用包含不同語言的屬性文件打包了所有應用程序,以支持國際化域名。使用OSGi WAB作爲戰爭中的資源包

之一,這是一個頭腦風暴會議期間提出的事情是使翻譯服務的OSGi的模塊。問題是我有0 OSGi的經驗,不知道如何去做。進一步的會談和googleing建議開發服務作爲WAB。

我面臨的問題是如何從WAB調用資源?有可能嗎?或者我會走錯路?

任何幫助將被極大地佔用。

問候 S.

+0

您的項目是否已經使用OSGi? – artbristol 2012-08-16 13:32:36

+0

不,我目前正在研究一個綠色項目,我們目前正在評估該解決方案。 OSGi Fragments看起來很合適。 – zeusontherun 2012-08-20 10:36:32

+0

在這種情況下,我會遠離OSGi。這會使構建過程複雜化很多,我懷疑您的特定需求會帶來哪些好處。 – artbristol 2012-08-20 10:37:41

回答

1

很難說肯定不知道更多的細節,但你可能想使用的,而不是戰爭WAB,而不是戰爭的內部。 wab只是與osgi元數據的戰爭。國際化的一個好方法(以及這個想法出現的原因,我猜)是爲資源包使用片段。 This article有一個教程,既開發wab,然後添加碎片國際化。

我還建議不要試圖直接從OSGi包加載資源,因爲OSGi的封裝往往使得資源無法訪問,除非你做醜陋的東西與包裝的進口和出口。相反,查找服務並讓它執行資源加載。使用類似聲明式服務或藍圖的方法比編程式服務訪問要容易得多。

0

除非你特別需要翻譯服務的運行時間重新部署,我建議你只是打包爲一個罐子,它包括在每個Web應用程序。如果你使用的是Maven之類的話,更新服務只是增加依賴版本號,重建和重新部署戰爭的一個例子。

+0

的確,將i18n的東西打包到屬性文件中是理想的,並且使用Maven將本地化資源包打包到每個部署中。 問題是,我們預計未來將有更多的本地化應用可供n個應用程序使用,並且它將是保持全球本地化的核心。每當新本地上線時,這可能會消除部署。 – zeusontherun 2012-08-21 08:13:32