1. 程式人生 > >java判斷伺服器是那種,例如區分tomcat和weblogic

java判斷伺服器是那種,例如區分tomcat和weblogic

下面是伺服器型別探測的類,原理就是用每個應用伺服器自己獨特的啟動類來判斷 [java] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. package com.roger.query.util;  
  2. import org.apache.log4j.Logger;  
  3. /** 
  4.  * @  伺服器型別探測 
  5.  * @Date  2011/04/13 
  6.  * **/
  7. publicclass ServerUtil {  
  8.  publicstaticfinal String GERONIMO_CLASS = "/org/apache/geronimo/system/main/Daemon.class"
    ;  
  9.  publicstaticfinal String JBOSS_CLASS = "/org/jboss/Main.class";  
  10.  publicstaticfinal String JETTY_CLASS = "/org/mortbay/jetty/Server.class";  
  11.  publicstaticfinal String JONAS_CLASS = "/org/objectweb/jonas/server/Server.class";  
  12.  publicstaticfinal String OC4J_CLASS = "/oracle/jsp/oc4jutil/Oc4jUtil.class";  
  13.  publicstaticfinal String ORION_CLASS = "/com/evermind/server/ApplicationServer.class";  
  14.  publicstaticfinal String PRAMATI_CLASS = "/com/pramati/Server.class";  
  15.  publicstaticfinal String RESIN_CLASS = "/com/caucho/server/resin/Resin.class";  
  16.  publicstaticfinal String REXIP_CLASS = "/com/tcc/Main.class";  
  17.  public
    staticfinal String SUN7_CLASS = "/com/iplanet/ias/tools/cli/IasAdminMain.class";  
  18.  publicstaticfinal String SUN8_CLASS = "/com/sun/enterprise/cli/framework/CLIMain.class";  
  19.  publicstaticfinal String TOMCAT_CLASS = "/org/apache/catalina/startup/Bootstrap.class";  
  20.  publicstaticfinal String WEBLOGIC_CLASS = "/weblogic/Server.class";  
  21.  publicstaticfinal String WEBSPHERE_CLASS = "/com/ibm/websphere/product/VersionInfo.class";  
  22.  publicstatic String getServerId() {  
  23.   ServerUtil sd = _instance;  
  24.   if (sd._serverId == null) {  
  25.    if (ServerUtil.isGeronimo()) {  
  26.     sd._serverId = "geronimo";  
  27.    } elseif (ServerUtil.isJBoss()) {  
  28.     sd._serverId = "jboss";  
  29.    } elseif (ServerUtil.isJOnAS()) {  
  30.     sd._serverId = "jonas";  
  31.    } elseif (ServerUtil.isOC4J()) {  
  32.     sd._serverId = "oc4j";  
  33.    } elseif (ServerUtil.isOrion()) {  
  34.     sd._serverId = "orion";  
  35.    } elseif (ServerUtil.isResin()) {  
  36.     sd._serverId = "resin";  
  37.    } elseif (ServerUtil.isWebLogic()) {  
  38.     sd._serverId = "weblogic";  
  39.    } elseif (ServerUtil.isWebSphere()) {  
  40.     sd._serverId = "websphere";  
  41.    }  
  42.    if (ServerUtil.isJetty()) {  
  43.     if (sd._serverId == null) {  
  44.      sd._serverId = "jetty";  
  45.     } else {  
  46.      sd._serverId += "-jetty";  
  47.     }  
  48.    } elseif (ServerUtil.isTomcat()) {  
  49.     if (sd._serverId == null) {  
  50.      sd._serverId = "tomcat";  
  51.     } else {  
  52.      sd._serverId += "-tomcat";  
  53.     }  
  54.    }  
  55.    if (_log.isInfoEnabled()) {  
  56.     _log.info("Detected server " + sd._serverId);  
  57.    }  
  58.    if (sd._serverId == null) {  
  59.     thrownew RuntimeException("Server is not supported");  
  60.    }  
  61.   }  
  62.   return sd._serverId;  
  63.  }  
  64.  publicstaticboolean isGeronimo() {  
  65.   ServerUtil sd = _instance;  
  66.   if (sd._geronimo == null) {  
  67.    Class c = sd.getClass();  
  68.    if (c.getResource(GERONIMO_CLASS) != null) {  
  69.     sd._geronimo = Boolean.TRUE;  
  70.    } else {  
  71.     sd._geronimo = Boolean.FALSE;  
  72.    }  
  73.   }  
  74.   return sd._geronimo.booleanValue();  
  75.  }  
  76.  publicstaticboolean isJBoss() {  
  77.   ServerUtil sd = _instance;  
  78.   if (sd._jBoss == null) {  
  79.    Class c = sd.getClass();  
  80.    if (c.getResource(JBOSS_CLASS) != null) {  
  81.     sd._jBoss = Boolean.TRUE;  
  82.    } else {  
  83.     sd._jBoss = Boolean.FALSE;  
  84.    }  
  85.   }  
  86.   return sd._jBoss.booleanValue();  
  87.  }  
  88. 相關推薦

    java判斷伺服器那種例如區分tomcatweblogic

    下面是伺服器型別探測的類,原理就是用每個應用伺服器自己獨特的啟動類來判斷 [java] view plain copy  print? package com.roger.query.util;   import org.apach

    2018年最新Java環境變數配置:完美解決java,javac不是內部或外部命令cmd只識別java不識別javacjdk,jre,tomcat,JAVA_HOME,JRE_HOME配置

    用cmd執行java可以,卻不能執行javac原因: JDK9(或者是JDK1.9)版本之後,JDK和JRE的安裝路徑不再是包含關係了,而網上的環境變數的路徑還是JDK老版本(JDK8及以下版本)的配置方法,所以你按照JDK老版本路徑配置肯定不能在命令列下java 和 ja

    java 判斷型別instanceof不要再用try catch了

    1.以前老是用try catch來判斷物件型別,現在要用instanceof了,特別是spring integration有比較多會傳遞不同的payload type if( sth instanceof String){ //string type }else if(s

    在10000以內判斷一個整數它加上100加上268後都是一個完全平方數 3 提問:請問該數是多少?

    and pan class 多少 div mat code 請問 提問 1 ‘‘‘ 2 在10000以內判斷一個整數,它加上100和加上268後都是一個完全平方數 3 提問:請問該數是多少? 4 ‘‘‘ 5 import math 6 for i in ran

    Java】模擬Sping實現其IOCAOP核心(一)

    在這裡我要實現的是Spring的IOC和AOP的核心,而且有關IOC的實現,註解+XML能混合使用! 參考資料: IOC:控制反轉(Inversion of Control,縮寫為IoC),是面向物件程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(D

    使用python進行Linux伺服器監測畫CPU使用率記憶體佔用圖

    整體思想 使用python包psutil 獲取linux伺服器CPU、記憶體等相關資料 資料儲存在本地或者儲存在資料庫 讀取資料,使用python包pyecharts畫圖 使用Flask,頁面前端訪問 一、pstuil 的安裝和使用,儲存資料 pip inst

    js---聖盃模式 列舉如何區分陣列物件callee

    1. 繼承發展史(從a發展到d) a 原型鏈繼承:過多的繼承沒有用的屬性 function Grand(){this.grand='grand';this.name='haha'} function Father(){this.father='father'} function Son(){th

    淺析java中靜態方法非靜態方法構造方法的執行順序問題

    https://blog.csdn.net/qq_42401622/article/details/81190406 對於java中的靜態方法,非靜態方法和構造方法的理解: 靜態方法是隨著的java中虛擬機器的類的載入而載入,是跟隨繫結在一起的。 public class Main{ s

    Java】模擬Sping實現其IOCAOP核心(二)

    接著上一篇,在上一篇完成了有關IOC的註解實現,這一篇用XML的方式實現IOC,並且完成AOP。 簡易的IOC框圖 註解的方式實現了左邊的分支,那麼就剩下右邊的XML分支: XmlContext:這個類是也是AbstractApplicationContext的子類,和AnnotationContext

    java呼叫shell指令碼解決傳參許可權問題

    1. java 執行shell java 通過 Runtime.getRuntime().exec() 方法執行 shell 的命令或 指令碼,exec()方法的引數可以是指令碼的路徑也可以是直接的 shell命令 程式碼如下(此程式碼是存在問題的。完整程式

    簡潔版:java獲取時間之後對比開始時間結束時間對比活動狀態

    @Transient    當前時間的獲取 public String getStatus(){Date now = new Date();if (getStartTime().before(now) && getEndTime().after(now))

    C# File.Exists 判斷系統檔案警惕32位64位的差異

    今天在除錯一個Winform程式,使用File.Exists 判斷一個已經存在的驅動檔案,程式一直返回false。因為驅動檔案屬於系統目錄,心想難道是許可權不夠導致的?然後用管理員身份執行軟體,依然返回false。嚇的我趕緊去系統目錄C:\Windows\system32\drives 搜尋該檔案,一看在這裡

    tomcatweblogic的區別

    廠商 玩意兒 redhat 區別 都是 tom logic 付費 出現 Tomcat是Apache基金會提供的Servlet容器,它支持JSP, Servlet和JDBC等J2EE關鍵技術,所以用戶可以用Tomcat開發基於數據庫,Servlet和JSP頁面的Web應用,這

    tomcat weblogic獲取專案的根路徑的方法

    web專案中tomcat 和 weblogic都支援的寫法 :嘗試用其他方法獲取的時候 在linux下的weblogic會獲取成空       String path = this.getClass()

    jconsole遠端監控Linux tomcatweblogic

    最近對程式進行了優化,準備拿到 Linux的虛擬機器上做一下壓力測試,碰到了一些問題,所以想看看程式的狀況,想到了Jconsole。Linux上不方便看啊,所以只能遠端。以前配置過,但感覺並不是對所有都適用。這裡結合別人的整理一下。 環境:Linux  WebLogic12c 1、修改WLS配置檔案wind

    java的簡單入門tomcat伺服器

    Tomcat是一款開源的處理動態非常牛逼的web伺服器。是sun公司開發的,在喪屍危機之後被收購了。 安裝Tomcat需要的支援安裝包 JDK下載:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21331

    Tomcat伺服器java使用HttpClient發請求返回400錯誤

    首先要明白400錯誤是什麼意思: 由於語法格式有誤,伺服器無法理解此請求。不作修改,客戶程式就無法重複此請求。 然後在java程式碼中,列印請求的url,會發現url中存在空格,可能是使用各種序列化根

    今天面試問了一道題。說一串字符串由這幾個符號組成"<>{}[]()”,寫一個算法例如如果組成方式為“<>{[]}{}()”這種也就是XML格式那種則返回true。否則返回false;

    length 分享 void ges 調用 new sta image package 原創 今天面試問了一道題。說一串字符串由這幾個符號組成"<>{}[]()”,寫一個算法,例如如果組成方式為“<>{[]}{}()”這種,也就是XML格式那種則返回

    MAVEN插件-tomcat插件java編譯插件資源文件拷貝插件

    encoding AS artifact ID 資源 mave fig true con <plugins> <!-- 資源文件拷貝插件 --> <plugin> <groupId>org.apache.