作为成本削减的一部分,管理层希望停止在开发人员系统中使用websphere应用程序服务器。
我有权将EAR文件转换为一个胖的OSGI包并将其部署在equinox容器中。如果成功,此设置将在开发人员之间共享,并且仅用于开发人员计算机,而不是用于更高级的环境。
我搜索了很多网站,但没有找到任何具体的解决方案。 如果有任何问题,请分享您的想法以解决问题。
答案 0 :(得分:1)
我强烈建议您查看Open Liberty:https://openliberty.io
Open Liberty是IBM去年在Java One上推出的一个开源项目。该项目的目标很简单:将令人敬畏的Java EE技术交给开发人员。
Open Liberty支持Java EE 7和MicroProfile以及其他技术。
除非您有足够的技术理由将EAR转换为OSGi包,否则您可以在开发环境中使用Open Liberty。安装很简单:
for (var i = 0; i < this.rooms.length; i++){
for (var j = 0; j < this.rooms[i].players; j++){
io.sockets.connected[this.rooms[i].players[j].socketid].emit('updateGame', this.rooms[i]);
}
}
试一试。我想你会感到惊喜。
如果您有任何疑问,Open Liberty有一个非常活跃的社区和Twitter,或者在twitter @barecode上打我。
答案 1 :(得分:0)
EAR文件只是一个包含嵌套JAR文件的JAR文件。那些嵌套的JAR构成了应用程序的类路径。
转换为OSGi包应该像为包含列出所包含JAR的标题META-INF/MANIFEST.MF
标题的顶级JAR编写Bundle-ClassPath
一样简单,例如:
Bundle-ClassPath: a.jar, b.jar, c.jar, ...
如果EAR文件也直接包含属于应用程序类路径的类,那么新的bundle的JAR文件应作为名为&#39;的条目添加到Bundle-ClassPath
前面。&# 39; (点),例如:
Bundle-ClassPath: ., a.jar, b.jar, c.jar, ...
请注意,清单还需要包含必需的OSGi标头Bundle-Manifest: 2
和Bundle-SymbolicName: ...
。网上有很多关于此的信息。