我有一個Java應用程序,可以在tomcat和jboss上運行。java - 哪個webserver是運行的應用程序
我需要爲基於Web服務器類型執行某些任務執行「if條件」。
我該如何獲得這些信息?
我必須這樣做,因爲我需要連接到數據源,我可以得到一個基於Web服務器的方式不同語境:
try{
String webserver = getWebServer();
Logger logger=Logger.getLogger("myLog");
if(webserver.equalsIgnoreCase("Jboss")){
logger.severe("Webserver: " + webserver);
Hashtable<String, String> ht= new Hashtable();
ht.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
ht.put(InitialContext.PROVIDER_URL,"jnp://localhost:1099");
ht.put(InitialContext.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
InitialContext ic=new InitialContext(ht);
if(ic!=null){
logger.severe("success");/*I am getting success as output here*/
DataSource ds=(DataSource)ic.lookup(getDatasource());
/*this is where it's failing*/
if(ds!=null){
logger.severe("success1");
}
return ds.getConnection();
}
return null;
}
else{ //TOMCAT
logger.severe("Webserver: " + webserver);
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
DataSource ds = (DataSource) envCtx.lookup(getDatasource());
// Allocate and use a connection from the pool
Connection conn = ds.getConnection();
return conn;
}
}
的Tomcat版本不JBoss上運行,反之亦然 謝謝!
爲什麼你需要這樣做? – Kayaman
你想做什麼樣的任務?這是不尋常的,因爲戰爭的關鍵在於它可以在任何應用服務器上運行,並且不應該知道它。 – mikea
我更新了問題以提供更多信息 – user1820620