java查看weblogic服務器_java判斷服務器是那種,例如區分tomcat和weblogic | 學步園

package com.geostar.query.util;

import org.apache.log4j.Logger;

/**

* @author likehua

* @? 服務器類型探測

* @Date? 2011/04/13

* **/

public class ServerUtil {

public static final String GERONIMO_CLASS = "/org/apache/geronimo/system/main/Daemon.class";

public static final String JBOSS_CLASS = "/org/jboss/Main.class";

public static final String JETTY_CLASS = "/org/mortbay/jetty/Server.class";

public static final String JONAS_CLASS = "/org/objectweb/jonas/server/Server.class";

public static final String OC4J_CLASS = "/oracle/jsp/oc4jutil/Oc4jUtil.class";

public static final String ORION_CLASS = "/com/evermind/server/ApplicationServer.class";

public static final String PRAMATI_CLASS = "/com/pramati/Server.class";

public static final String RESIN_CLASS = "/com/caucho/server/resin/Resin.class";

public static final String REXIP_CLASS = "/com/tcc/Main.class";

public static final String SUN7_CLASS = "/com/iplanet/ias/tools/cli/IasAdminMain.class";

public static final String SUN8_CLASS = "/com/sun/enterprise/cli/framework/CLIMain.class";

public static final String TOMCAT_CLASS = "/org/apache/catalina/startup/Bootstrap.class";

public static final String WEBLOGIC_CLASS = "/weblogic/Server.class";

public static final String WEBSPHERE_CLASS = "/com/ibm/websphere/product/VersionInfo.class";

public static String getServerId() {

ServerUtil sd = _instance;

if (sd._serverId == null) {

if (ServerUtil.isGeronimo()) {

sd._serverId = "geronimo";

} else if (ServerUtil.isJBoss()) {

sd._serverId = "jboss";

} else if (ServerUtil.isJOnAS()) {

sd._serverId = "jonas";

} else if (ServerUtil.isOC4J()) {

sd._serverId = "oc4j";

} else if (ServerUtil.isOrion()) {

sd._serverId = "orion";

} else if (ServerUtil.isResin()) {

sd._serverId = "resin";

} else if (ServerUtil.isWebLogic()) {

sd._serverId = "weblogic";

} else if (ServerUtil.isWebSphere()) {

sd._serverId = "websphere";

}

if (ServerUtil.isJetty()) {

if (sd._serverId == null) {

sd._serverId = "jetty";

} else {

sd._serverId += "-jetty";

}

} else if (ServerUtil.isTomcat()) {

if (sd._serverId == null) {

sd._serverId = "tomcat";

} else {

sd._serverId += "-tomcat";

}

}

if (_log.isInfoEnabled()) {

_log.info("Detected server " + sd._serverId);

}

if (sd._serverId == null) {

throw new RuntimeException("Server is not supported");

}

}

return sd._serverId;

}

public static boolean isGeronimo() {

ServerUtil sd = _instance;

if (sd._geronimo == null) {

Class c = sd.getClass();

if (c.getResource(GERONIMO_CLASS) != null) {

sd._geronimo = Boolean.TRUE;

} else {

sd._geronimo = Boolean.FALSE;

}

}

return sd._geronimo.booleanValue();

}

public static boolean isJBoss() {

ServerUtil sd = _instance;

if (sd._jBoss == null) {

Class c = sd.getClass();

if (c.getResource(JBOSS_CLASS) != null) {

sd._jBoss = Boolean.TRUE;

} else {

sd._jBoss = Boolean.FALSE;

}

}

return sd._jBoss.booleanValue();

}

public static boolean isJetty() {

ServerUtil sd = _instance;

if (sd._jetty == null) {

Class c = sd.getClass();

if (c.getResource(JETTY_CLASS) != null) {

sd._jetty = Boolean.TRUE;

} else {

sd._jetty = Boolean.FALSE;

}

}

return sd._jetty.booleanValue();

}

public static boolean isJOnAS() {

ServerUtil sd = _instance;

if (sd._jonas == null) {

Class c = sd.getClass();

if (c.getResource(JONAS_CLASS) != null) {

sd._jonas = Boolean.TRUE;

} else {

sd._jonas = Boolean.FALSE;

}

}

return sd._jonas.booleanValue();

}

public static boolean isOC4J() {

ServerUtil sd = _instance;

if (sd._oc4j == null) {

Class c = sd.getClass();

if (c.getResource(OC4J_CLASS) != null) {

sd._oc4j = Boolean.TRUE;

} else {

sd._oc4j = Boolean.FALSE;

}

}

return sd._oc4j.booleanValue();

}

public static boolean isOrion() {

ServerUtil sd = _instance;

if (sd._orion == null) {

Class c = sd.getClass();

if (c.getResource(ORION_CLASS) != null) {

sd._orion = Boolean.TRUE;

} else {

sd._orion = Boolean.FALSE;

}

}

return sd._orion.booleanValue();

}

public static boolean isPramati() {

ServerUtil sd = _instance;

if (sd._pramati == null) {

Class c = sd.getClass();

if (c.getResource(PRAMATI_CLASS) != null) {

sd._pramati = Boolean.TRUE;

} else {

sd._pramati = Boolean.FALSE;

}

}

return sd._pramati.booleanValue();

}

public static boolean isResin() {

ServerUtil sd = _instance;

if (sd._resin == null) {

Class c = sd.getClass();

if (c.getResource(RESIN_CLASS) != null) {

sd._resin = Boolean.TRUE;

} else {

sd._resin = Boolean.FALSE;

}

}

return sd._resin.booleanValue();

}

public static boolean isRexIP() {

ServerUtil sd = _instance;

if (sd._rexIP == null) {

Class c = sd.getClass();

if (c.getResource(REXIP_CLASS) != null) {

sd._rexIP = Boolean.TRUE;

} else {

sd._rexIP = Boolean.FALSE;

}

}

return sd._rexIP.booleanValue();

}

public static boolean isSun() {

if (isSun7() || isSun8()) {

return true;

} else {

return false;

}

}

public static boolean isSun7() {

ServerUtil sd = _instance;

if (sd._sun7 == null) {

Class c = sd.getClass();

if (c.getResource(SUN7_CLASS) != null) {

sd._sun7 = Boolean.TRUE;

} else {

sd._sun7 = Boolean.FALSE;

}

}

return sd._sun7.booleanValue();

}

public static boolean isSun8() {

ServerUtil sd = _instance;

if (sd._sun8 == null) {

Class c = sd.getClass();

if (c.getResource(SUN8_CLASS) != null) {

sd._sun8 = Boolean.TRUE;

} else {

sd._sun8 = Boolean.FALSE;

}

}

return sd._sun8.booleanValue();

}

public static boolean isTomcat() {

ServerUtil sd = _instance;

if (sd._tomcat == null) {

Class c = sd.getClass();

if (c.getResource(TOMCAT_CLASS) != null) {

sd._tomcat = Boolean.TRUE;

} else {

sd._tomcat = Boolean.FALSE;

}

}

return sd._tomcat.booleanValue();

}

public static boolean isWebLogic() {

ServerUtil sd = _instance;

if (sd._webLogic == null) {

Class c = sd.getClass();

if (c.getResource(WEBLOGIC_CLASS) != null) {

sd._webLogic = Boolean.TRUE;

} else {

sd._webLogic = Boolean.FALSE;

}

}

return sd._webLogic.booleanValue();

}

public static boolean isWebSphere() {

ServerUtil sd = _instance;

if (sd._webSphere == null) {

Class c = sd.getClass();

if (c.getResource(WEBSPHERE_CLASS) != null) {

sd._webSphere = Boolean.TRUE;

} else {

sd._webSphere = Boolean.FALSE;

}

}

return sd._webSphere.booleanValue();

}

private ServerUtil() {

}

private static Logger _log = Logger.getLogger(ServerUtil.class);

private static ServerUtil _instance = new ServerUtil();

private String _serverId;

private Boolean _geronimo;

private Boolean _jBoss;

private Boolean _jetty;

private Boolean _jonas;

private Boolean _oc4j;

private Boolean _orion;

private Boolean _pramati;

private Boolean _resin;

private Boolean _rexIP;

private Boolean _sun7;

private Boolean _sun8;

private Boolean _tomcat;

private Boolean _webLogic;

private Boolean _webSphere;

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/528947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/528947.shtml
英文地址,請注明出處:http://en.pswp.cn/news/528947.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

拼接的option會多出空行_Word空格,空行,頁眉橫線等問題,我只花一分鐘就全解決了...

從網上復制下來的資料粘貼到Word文檔上,出現了許多空格、空行、頁眉橫線等問題,這時候我們該如何快速地解決這些問題,看看下面的操作你就知道了。一、刪除空格1、空格案例從網上復制下來的文字到Word文檔中,出現字與字之間有好多空…

基于java高校教師管理系統_基于SSM框架下的JAVA高校教師業務水平綜合管理系統...

每天記錄學習,每天會有好心情。*^_^*今天和一個朋友共同完成了一個高校教師業務水平綜合管理系統項目,我們在開發時選用的框架是SSM(MYECLIPSE)框架。我這個朋友知識有限,只會這個框架,哈哈,都是為了方便他。和往常一樣…

oracle連接工具_扯一扯Tableau軟件配置數據源系列之Oracle

作者:扯蛋君編輯:齊天大圣聲明:本文章僅用于Taleau軟件的應用、學習溝通,不代表Taleau公司;文中所示截圖來源Taleau官方及軟件公開內容,相應著作權歸Tableau所有。 今天給大家介紹Tableau工具如何連接數據庫…

在java中原始時間_Java 日期時間

Java 日期時間java.util包提供了Date類來封裝當前的日期和時間。 Date類提供兩個構造函數來實例化Date對象。第一個構造函數使用當前日期和時間來初始化對象。Date( )第二個構造函數接收一個參數,該參數是從1970年1月1日起的微秒數。Date(long millisec)Date對象創建…

如何和后臺接觸的_后臺產品,不只是做支持

最近在招聘后臺產品經理,面試過程中提到一個問題,這個問題之前也困擾了我很久:你做的后臺產品,價值體現在哪里?只是做業務支持么?今天就來聊聊這個話題。我是做后臺產品出身,最開始入行做的是云…

java手寫的html轉圖片格式_(Java實現)HTML轉JPG,TIFF等圖片格式和TIFF圖片合并功能解決方案。...

上一篇文章說到了HTML轉PDF的實現方式,而就在那個需求的另外一個方面,項目要求要實現頁面轉圖片的需求,主要是JPG,TIFF,PNG等格式。弄得我有點囧,上次一直沒搞定。也沒找到合適的工具進行轉換。前一小段時間…

云計算呼叫中心_干貨|云呼叫中心系統和傳統呼叫中心系統的區別在哪?

隨著社會的發展,呼叫中心由傳統的呼叫中心逐漸發展為云呼叫中心。然而關于這兩者的區別,您知道嗎?跟隨暢遠技術一同來了解一下吧......一、購買、安裝不同傳統呼叫中心軟件在配置方面有幾個特點:一次購買終身使用;安裝…

java從鍵盤為數組賦值,java給數組賦值

java 動態數組賦值,java對象數組詳解,java二維數組賦值,java給數組賦值java數組動態賦值,從零學java筆錄-第24篇 圖解一維數組在內存中,java二維數組賦值,java給數組賦值java 數組動態賦值,從零學java筆錄-第24篇 圖解一維數組在內存中,java二維數組賦值,java給數組賦值數組的基…

隔一段時間查找一次 golang_劍指 offer-04 二維數組中的查找

算法名稱:二維數組中的查找題目內容:在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該…

decorator php,php設計模式 Decorator(裝飾模式)

/*** 裝飾模式** 動態的給一個對象添加一些額外的職責,就擴展功能而言比生成子類方式更為靈活*/header("Content-type:text/html;charsetutf-8");abstract class MessageBoardHandler{public function __construct(){}abstract public function filter($msg);}class …

python中format函數用法簡書_增強的格式化字符串format函數

自python2.6開始,新增了一種格式化字符串的函數str.format(),可謂威力十足。那么,他跟之前的%型格式化字符串相比,有什么優越的存在呢?讓我們來揭開它羞答答的面紗。它通過{}和:來代替%。“映射”示例通過位置In [1]: …

在線電腦配置PHP源碼,域名授權系統PHP源碼 V2.7.0 支持盜版追蹤

最新漂亮簡潔大氣的域名授權系統PHP源碼,域名授權系統PHP版,功能強大帶有后臺,經過版本升級,全新美觀大氣的UI潔面!支持盜版追蹤,與卡密系統對接購買卡密對域名進行授權,支持授權代碼、到期時間…

python分詞代碼_中文分詞--最大正向匹配算法python實現

最大匹配法:最大匹配是指以詞典為依據,取詞典中最長單詞為第一個次取字數量的掃描串,在詞典中進行掃描(為提升掃描效率,還可以跟據字數多少設計多個字典,然后根據字數分別從不同字典中進行掃描)。例如:詞典…

python輸出所有組合數_python – GridSearchCV是否存儲了所有參數組合的所有分數?...

GridSearchCV使用“評分”來選擇最佳估算器.訓練GridSearchCV后,我希望看到每個組合的得分. GridSearchCV是否存儲每個參數組合的所有分數?如果它如何獲得分數?謝謝.這是我在另一篇文章中使用的示例代碼.from sklearn.feature_extraction.text import Co…

php 504網關,504 gateway timeout什么意思

504 gateway time-out(504網關超時錯誤)是HTTP狀態代碼,這意味著一個服務器在嘗試加載網頁或填寫瀏覽器的另一個請求時未從其訪問的另一臺服務器收到及時響應。換句話說,504錯誤通常表明不同的計算機,即您正在獲取504消息的網站無法控制但依賴…

python 二維數組長度_劍指offer二維數組中的查找【Java+Python】

點擊上方"藍字",關注了解更多二維數組中的查找1. 題目描述在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組…

php 靜態變量 引用,PHP的返回引用(方法名前加)和局部靜態變量(static)

先閱讀手冊從函數返回一個引用,必須在函數聲明和指派返回值給一個變量時都使用引用操作符 & :例子 17-13. 由函數返回一個引用有關引用的更多信息, 請查看引用的解釋。在來看一段很多開源代碼喜歡用的單例注冊模式 class a{} class b{} function &am…

失物招領小程序_通知 | 保衛部擬設置失物招領處

保衛部擬設置失物招領處為規范對遺失物品的接收、登記、發放等工作,切實維護師生利益,保衛部擬設置失物招領處,現將有關失物招領的流程明確如下:1、失物招領地點:保衛部二樓中廳。2、遺失物的接收。師生將拾得的遺失物…

php獲取表所有數據類型,php excel 導入 導入三級分類 表格應該怎么設計才能得到想要的數據格式?...

就是多個1級分類 下面有不確定個二級分類 二級分類下面有不確定個三級分類 我想獲取到相關的數據組合寫入數據庫 但是這個格式不知道怎么排才能獲取到對的數據有空的親們給看看 幫下 謝謝有沒有辦法獲取整列的值 然后根據長度去區分2列 然后再區分三列現在獲取到的數據格式是按…

python數據清理的實踐總結_python3常用的數據清洗方法(小結)

首先載入各種包:import pandas as pdimport numpy as npfrom collections import Counterfrom sklearn import preprocessingfrom matplotlib import pyplot as plt%matplotlib inlineimport seaborn as snsplt.rcParams[font.sans-serif] [SimHei] # 中文字體設置…