当项目要运行在多种应用服务器上,由于不同的服务器有某些不同的特性,就需要根据不同的应用服务器做不同的处理
Liferay里面提供了一个方法来判断不同的应用服务器,类ServerDetector就是用来判断当前应用是在哪个服务器下面的
使用很简单
if (ServerDetector.isTomcat()) {
}else if (ServerDetector.isWebLogic()) {
}
但是如果我们想在运行时获取相应的端口、服务器信息就不太容易了(Tomcat可以直接读取server.xml文件,Weblogic也可以读取config.xml,但是在集群时里面的标签不好判断了)
http://www.iteye.com/problems/45571
就是上面这位兄弟的问题,在不发生request的情况下获取相应的端口信息,供集群环境下的调度器使用,在网上找了半天没有找到答案,最终在一个外国网站上找到了解答,方法如下:
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();
分享到:
相关推荐
简单迅速的web容器 简单迅速的web容器 简单迅速的web容器 简单迅速的web容器
Web的运行环境、服务及应用的虚拟化是减轻Web操作系统安全风险的一种有效方法,然而Web运行环境的虚拟化仍然存在不少挑战,如执行时间、资源负载和兼容性等方面的问题。为解决这些问题,提出了一种Web运行环境轻量级...
Spring源代码解析(二):IoC容器在Web容器中的启动.doc
Spring把Bean放在这个容器中,普通的类在需要的时候,直接用getBean()方法取出
tomcat web容器 有需要的欢迎下载
NULL 博文链接:https://sxk4429.iteye.com/blog/672282
使用 Kubernetes 和 Tomcat 实现 Web 应用的容器化部署
tk-filter js,jsp,css,文件压缩包含源代码,web容器加载filter,能够实现对于js,jsp,css等文件压缩,保证网络传输速率。
干净tomcat6 , 方便使用
jettyweb开发配置服务器,轻量级开发服务器
几种常见的JavaEE Web容器集群技术比较
NULL 博文链接:https://qindongliang.iteye.com/blog/2090085
java获取web容器地址的方法,需要的朋友可以参考一下
NULL 博文链接:https://201704161020.iteye.com/blog/2379824
OSGi与Web容器的整合
示例源码工程 博文链接:https://longstudio.iteye.com/blog/1955587
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...
web容器tomcat , 内含有tomcat 6 , 7 , 8.5 ,9 各版本的 , 64位 , 外带了8.5 和9 的tomcat文档. 方便使用。
网博士PHPWEB顶部容器底部容器一键应用全局