运行时判web容器类型及获取web容器相关信息
2015-01-07 11:36
351 查看
当项目要运行在多种应用服务器上,由于不同的服务器有某些不同的特性,就需要根据不同的应用服务器做不同的处理
Liferay里面提供了一个方法来判断不同的应用服务器,类ServerDetector就是用来判断当前应用是在哪个服务器下面的
使用很简单
Java代码
if (ServerDetector.isTomcat()) {
}else if (ServerDetector.isWebLogic()) {
}
但是如果我们想在运行时获取相应的端口、服务器信息就不太容易了(Tomcat可以直接读取server.xml文件,Weblogic也可以读取config.xml,但是在集群时里面的标签不好判断了)
http://www.iteye.com/problems/45571
就是上面这位兄弟的问题,在不发生request的情况下获取相应的端口信息,供集群环境下的调度器使用,在网上找了半天没有找到答案,最终在一个外国网站上找到了解答,方法如下:
Java代码
ObjectName service = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
InitialContext ctx = new InitialContext();
MBeanServer server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");
ObjectName rt = (ObjectName)server.getAttribute(service,"ServerRuntime");
System.out.println("Server Name : "+server.getAttribute(rt,"Name"));
System.out.println("Server Address : "+server.getAttribute(rt,"ListenAddress"));
System.out.println("Server Port : "+server.getAttribute(rt,"ListenPort"));
ctx.close();
Liferay里面提供了一个方法来判断不同的应用服务器,类ServerDetector就是用来判断当前应用是在哪个服务器下面的
使用很简单
Java代码
if (ServerDetector.isTomcat()) {
}else if (ServerDetector.isWebLogic()) {
}
但是如果我们想在运行时获取相应的端口、服务器信息就不太容易了(Tomcat可以直接读取server.xml文件,Weblogic也可以读取config.xml,但是在集群时里面的标签不好判断了)
http://www.iteye.com/problems/45571
就是上面这位兄弟的问题,在不发生request的情况下获取相应的端口信息,供集群环境下的调度器使用,在网上找了半天没有找到答案,最终在一个外国网站上找到了解答,方法如下:
Java代码
ObjectName service = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
InitialContext ctx = new InitialContext();
MBeanServer server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");
ObjectName rt = (ObjectName)server.getAttribute(service,"ServerRuntime");
System.out.println("Server Name : "+server.getAttribute(rt,"Name"));
System.out.println("Server Address : "+server.getAttribute(rt,"ListenAddress"));
System.out.println("Server Port : "+server.getAttribute(rt,"ListenPort"));
ctx.close();
相关文章推荐
- javaweb-day06-4&5&6 (Servlet-Request-方法、表单获取客户端中文信息、URL编码、Request容器和请求转发、RequestDispatcher.include()
- Android中Webview运行js脚本获取定位信息(Geolocation)
- 获取当前设备类型和相关信息
- 获取当前手机运行的进程的相关信息
- 运行时在方法内部获取该方法的名称及参数相关信息
- JavaWeb中通过从request请求中获取浏览器类型、系统信息、客户端ip等信息
- 使用SYSTEMINFO类获取UNITY3D运行设备的各类信息(CPU类型,显卡类型等)
- [开发故事]第四回:应用反射在运行时动态获取类型信息
- C++运行时获取类型信息的type_info类与bad_typeid异常
- 【转】使用SYSTEMINFO类获取UNITY3D运行设备的各类信息(CPU类型,显卡类型等)
- Unity3D的SystemInfo类,用于获取运行设备硬件信息(CPU、显卡、类型等)
- MFC运行时类型信息相关类
- Unity3D的SystemInfo类,用于获取运行设备硬件信息(CPU、显卡、类型等)
- Unity3D的SystemInfo类,获取运行设备硬件信息(CPU、显卡、类型等)可用于手机
- win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试。如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助:
- Unity3D的SystemInfo类,用于获取运行设备硬件信息(CPU、显卡、类型等)
- 黑马程序员--Java基础加强--14.利用反射操作泛型III【解析关于泛型类型的细节信息的获取方法】【Method与泛型相关的方法】【个人总结】
- 设备类型判断 获取设备相关信息
- web获取URL相关信息
- Unity3D的SystemInfo类,获取运行设备硬件信息(CPU、显卡、类型等)可用于手机