我目前正在为内部开发的大量Web应用程序开发翻译服务。我面临的问题是,我们将所有应用程序都打包为包含不同语言的属性文件以获得 i18n 支持。
在头脑风暴会议上建议的一件事是使翻译服务成为OSGi模块。问题是我对OSGi的经验为0,不知道该怎么做。进一步的讨论和谷歌搜索建议将服务开发为WAB。
我面临的问题是如何从 WAB 调用资源?有可能还是我走错了路?
任何帮助都将被大大挪用。
问候S.
如果不了解更多细节,很难确定,但您可能想使用 wab 而不是战争,而不是战争内部。wab 只是一场与 osgi 元数据的战争。国际化的一个好方法(我猜这个想法出现的原因)是将片段用于资源包。本文有一个教程,介绍如何开发 wab,然后添加用于国际化的片段。
我还建议不要尝试直接从 osgi 捆绑包加载资源,因为 osgi 封装通常会使资源无法访问,除非您对包导入和导出做丑陋的事情。相反,请查找服务并让它执行资源加载。使用声明性服务或蓝图之类的东西比编程服务访问容易得多。
除非您特别需要翻译服务的运行时重新部署,否则我建议您将其打包为 jar 并将其包含在每个 Web 应用程序中。如果您使用的是 Maven 或类似的东西,则更新服务只是增加依赖项的版本号、重建和重新部署战争的情况。