如何知道我的应用程序是否在JBoss服务器上运行?

时间:2012-09-04 02:05:00

标签: java gwt jboss jetty

我正在开发一个GWT应用程序。

我想知道我是在运行Jboss实例还是在Jetty实例上运行。

这是因为如果我在Jetty上运行,这意味着我正在运行开发模式,我需要重定向到MyModule.html?codeserver ...但如果我在Jboss上运行,我需要重定向到MyModule.html

但我无法想象如果我在Jetty或Jboss上跑步我怎么知道。

4 个答案:

答案 0 :(得分:2)

您不应该在应用程序代码中尝试找到运行应用程序的Web服务器。相反,您可以在应用程序的上下文中设置一个区分参数,并为不同的服务器设置不同的值。

E.g。

对于JBoss,server.xml可以在上下文定义中包含一个参数,如下所示:

<Context ...>
    ...
    <Parameter name="applicationStage" value="prod" />
    ...
</Context>

对于Jetty,相同的上下文参数将进入其jetty.xml,但值为“devo”。

答案 1 :(得分:1)

如果您只想知道自己是在运行生产模式还是开发模式,请尝试

GWT.isProdMode();

当然只适用于客户端。

答案 2 :(得分:0)

根据我的知识,确实没有任何简单的方法可以确定您正在运行的应用程序服务器。您可以检查一些系统属性以确定这一点。

的JBoss:

jboss.server.name

码头:

jetty.home

虽然我不鼓励你的环境决定逻辑,因为维克多在他的回答中提到了。他的建议是一种更好的方法。

答案 3 :(得分:0)

在JSP中,

Server is <%= application.getServerInfo()%>

或使用

Server is ${pageContext.servletContext.serverInfo}

在Servlet中,

String server = getServletContext().getServerInfo();