确定我们的应用程序部署到哪个应用程序服务器?

发布于 2024-08-11 13:22:54 字数 80 浏览 7 评论 0原文

我们的 J2EE 应用程序部署到 JBoss,有时部署到 OC4J。 我可以知道正在使用哪一个吗? 我希望有一种方法可以返回运行时的容器信息。

Our J2EE Application is deployed to JBoss and sometimes to OC4J .
Can I know which one is being used?
I hope there is a method returning the container information on runtime.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

不打扰别人 2024-08-18 13:22:54

我能想到的最简单的事情就是在运行时查看系统属性,因为两个服务器几乎肯定会定义自己的属性。例如,JBoss 4 定义了jboss.server.dir 系统属性。检查该属性是否存在,如果存在,则可以假设您正在该服务器下运行。 OC4J 也会有类似的东西。

或者,尝试以反射方式加载属于服务器基础设施一部分的类(例如 JBoss 4 中的 org.jboss.Version )。如果存在,您就知道您所在的服务器。

Simplest thing I can think of is to look through the system properties at runtime, since both servers are almost certainly going to define their own. For example, JBoss 4 defines the jboss.server.dir system property. Check to see if that property exists, and if it does, then you can assume you're running under that server. OC4J will have something similar.

Alternatively, try reflectively loading a class that is part of the server's infrastructure (e.g. org.jboss.Version in JBoss 4). If it exists, you know what server you're on.

寄离 2024-08-18 13:22:54

最有可能的是 JMX 是您需要使用的。这两个容器都可能将自身的详细信息公开为 MBean。这里有一些 Oracle有关 JMX 的文档JBoss 文档

Most likely JMX is what you are going to need to use. Both containers likely expose details about themselves as MBeans. Here is some Oracle documentation on JMX and JBoss documentation.

此刻的回忆 2024-08-18 13:22:54

更改为 System.getProperty("jboss.home.dir")

Change to System.getProperty("jboss.home.dir")

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文