Internationalization 在war中将OSGi WAB用作资源包

Internationalization 在war中将OSGi WAB用作资源包,internationalization,osgi,war,wab,Internationalization,Osgi,War,Wab,我目前正在为一系列由内部开发的web应用程序开发翻译服务。我面临的问题是,我们将所有应用程序打包为包含不同语言的属性文件,以支持i18n 在一次头脑风暴会议上,有人建议将翻译服务变成一个OSGi模块。问题是我对OSGi没有经验,不知道如何去做。进一步的谈判和谷歌建议将这些服务发展为WAB 我面临的问题是如何从WAB调用资源?这是可能的还是我走错了路 任何帮助都是非常合适的 问候 美国如果不知道更多细节,很难确定,但你可能希望使用wab而不是战争,而不是战争内部。wab只是与osgi元数据的战争。

我目前正在为一系列由内部开发的web应用程序开发翻译服务。我面临的问题是,我们将所有应用程序打包为包含不同语言的属性文件,以支持i18n

在一次头脑风暴会议上,有人建议将翻译服务变成一个OSGi模块。问题是我对OSGi没有经验,不知道如何去做。进一步的谈判和谷歌建议将这些服务发展为WAB

我面临的问题是如何从WAB调用资源?这是可能的还是我走错了路

任何帮助都是非常合适的

问候
美国

如果不知道更多细节,很难确定,但你可能希望使用wab而不是战争,而不是战争内部。wab只是与osgi元数据的战争。国际化的一个很好的方法(我猜这也是这个想法产生的原因)是为资源包使用片段。有一个关于开发wab和添加国际化片段的教程


我还建议不要尝试直接从osgi包加载资源,因为osgi封装通常会使资源无法访问,除非您在包导入和导出方面做了一些不好的事情。相反,查找服务并让它进行资源加载。使用声明性服务或blueprint之类的服务比编程式服务访问容易得多。

除非您特别需要翻译服务的运行时重新部署,否则我建议您将其打包为jar,并将其包含在每个web应用程序中。如果您使用的是Maven或类似软件,更新服务只是增加依赖项的版本号、重建和重新部署war。

您的项目已经使用OSGi了吗?不,我正在进行一个绿色项目,我们正在评估解决方案。OSGi片段似乎很适合。如果是这样,我会远离OSGi。这将使您的构建过程变得非常复杂,我怀疑您的特定需求是否有好处。由于我们有许多应用程序使用属性文件进行本地化,您能否建议其他替代方案。有人建议我们将与每个应用程序相关的语言设置放在一个数据库中,然后将其外部化为一个OSGi WAB,从而消除维护多个属性文件的依赖性。我不确定OSGi将如何使构建过程复杂化。你能详细说明一下吗?是的,最好将i18n打包到属性文件中,并使用Maven在每次部署时打包本地化资源包。问题是,我们预计未来将有更多的本地化应用程序可供n个应用程序使用,而保持全球本地化的核心将是理想的。这可能会在每次新本地联机时消除部署。