在glassfish上发射felix外壳

时间:2011-12-01 22:28:05

标签: java-ee glassfish osgi telnet

我正在尝试启动felix shell,这将允许我在glassfish上与OSGI运行时交互并启动/停止包。从我读到的它应该可以通过telnet localhost 6666访问,但是当我尝试这样做时,我得到Connect失败。我尝试按照here提到的步骤,但仍然没有运气。

我找不到通过shell访问OSGI运行时的任何其他方法,有没有人有任何见解?

4 个答案:

答案 0 :(得分:4)

您需要告诉GlassFish启用Felix OSGi shell。如何做到这一点取决于GlassFish版本。

GlassFish 3.1.1及更早版本:

停止服务器 编辑domain.xml(在域的config目录中)并添加以下字符串:

<强> org.apache.felix.shell.remote,

的值

<强> -Dorg.glassfish.additionalOSGiBundlesToStart

它应该是这样的:

<强> -Dorg.glassfish.additionalOSGiBundlesToStart = org.apache.felix.shell.remote,org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell ,org.apache.felix.gogo.command

GlassFish 3.1.2及更高版本

asadmin create-jvm-options -Dglassfish.osgi.start.level.final = 3

所有版本

(重新)启动服务器。

telnet localhost 6666

答案 1 :(得分:4)

使用GlassFish 3.1.2并尝试

$ asadmin create-jvm-options -Dglassfish.osgi.start.level.final=3

并重新启动服务器。它有效。

答案 2 :(得分:1)

之前的答案大多正确,只是它缺少3.1.1的信息。对于3.1.1,您需要添加 org.apache.felix.shell.remote.jar到自动启动包列表中 osgi / felix / config.properties,如osgi features document的#10.4.1节所述。

答案 3 :(得分:1)

对于Glassfish 4,请参阅Sahoo的文档&amp;部分; OSGi访问不再使用telnet,而是使用asadmin下的子命令。