java - 应用程序运行在哪个网络服务器上

标签 java

我有一个可以在 tomcat 和 jboss 上运行的 java 应用程序。

我需要执行“if 条件”来根据网络服务器类型执行某些任务。

我如何访问这些信息?

我需要这样做,因为我需要连接到数据源,并且我可以根据网络服务器以不同的方式获取上下文:

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,反之亦然 谢谢!

最佳答案

由于您的应用程序可以在 Tomcat(一个简单的 servlet 容器)上运行,因此您可能需要使用 ServletContext#getServerInfo() 。获取有关应用程序运行环境的信息。

关于java - 应用程序运行在哪个网络服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475613/

相关文章:

java - 如何创建可滚动的结果集?

java - 将列表添加到 JScrollPane 时无法添加到 JList

java - Spring @Value 始终为 null

java - ANTLR 异常处理 "$",Java

Java SWT 用户输入验证

java - SSL 握手异常 : Remote host closed connection during handshake;

java - slf4j + lombok + 附加记录器

java - 在 JXTable 上设置多个 RowFilters

java - charAt() 返回的不是字符串?

java - 什么是NullPointerException,我该如何解决?