在我的本地环境中,我使用"start.bat“文件来启动应用程序包。
如下所示:
java -jar -ea -Declipse.ignoreApp=true -Dosgi.clean=true -Ddebug=true plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -console -noExitOSGi在命令提示符下启动,顺便说一下,我可以列出现有的插件。但是,生产环境将是saaj环境,我认为可以通过安装进程管理器包将OSGi作为后台进程启动。那么我的问题是如何监控它?如何启动或停止捆绑包?我是否需要使用一些监控工具,如Apache Felix web控制台才能进行telnet连接?在云服务器上有没有简单的方法(或常用方法)?有人能告诉我这个问题吗,因为我刚接触OSGi的概念?
发布于 2017-12-27 14:21:53
经过进一步的研究,我找到了一个针对我的情况的解决方案。eclipse equinox的"-console“选项(相当于"osgi.console")接受主机和端口参数。因此,我更改了我的启动脚本,如下所示(只是添加了端口号):
java -jar -ea -Declipse.ignoreApp=true -Dosgi.clean=true -Ddebug=true plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -console 5555 -noExit然而,这个额外的配置需要一些额外的库和OSGi配置更改。我必须将以下jar文件放在与"org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar".相同的文件夹中这是我的环境中的插件文件夹。
其次,我已经配置了我的config.ini文件。它应该包含以下键/值:
osgi.bundles=org.eclipse.equinox.console@start, org.apache.felix.gogo.command@start, org.apache.felix.gogo.shell@start, org.apache.felix.gogo.runtime@start
osgi.noShutdown=true
eclipse.ignoreApp=true完成这些更改后,我只需使用到给定端口的telnet连接,就可以从命令行将命令传递给OSGi运行时。一个棘手的问题是,即使您终止了OSGi连接,OSGi也始终处于运行状态,直到您通过键入‘ş’来定义ssh nate ssh控制台。
参考:OSGi Modularity - Tutorial
https://stackoverflow.com/questions/47974228
复制相似问题