繁体   English   中英

测试server.xml中配置的所有数据源

[英]Test all data source configured in server.xml

请忍受我的英语,如果我的问题不清楚或令人困惑,请告诉我,我将尝试重新表述:)

我有多个运行不同数据源的Tomcat,例如在server.xml中:

<GlobalNamingResources>
    <Resource
        auth="Container"
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        logAbandoned="true"
        maxActive="20"
        maxIdle="10"
        maxWait="5000"
        name="jdbc/datasource1"
        removeAbandoned="true"
        removeAbandonedTimeout="60"
        type="javax.sql.DataSource"
        url="jdbc:sqlserver://localhost;databaseName=database1"
        username="username"
        password="password"/>
</GlobalNamingResources>

我想创建一个Web应用程序,该应用程序可以简单地部署到每个Tomcat并通过触发servlet来测试在server.xml中配置的所有数据源。

说出测试数据源,我的意思是对每个数据源执行以下代码片段:

try {
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("datasource1");
    ds.getConnection(); // If this line doesn't throw SQLException, the db connection is established successfully
} catch(NamingException ex) {
    System.out.println("JNDI lookup failed: " + ex.getMessage());
} catch(SQLException se) {
    System.out.println("Unable to establish connection: " + se.getMessage());
}

问题

如果找不到在我的context.xml中保留“ datasource1”的方法,我找不到从server.xml检索所有数据源的方法,例如:

<ResourceLink global="jdbc/datasource1" name="datasource1" type="javax.sql.DataSource"/>

所以我的问题是,有没有办法在没有context.xml文件的情况下读取server.xml中配置的所有数据源?

提前致谢。

您的问题不只是从以下位置读取XML文件

$CATALINA_BASE/conf/server.xml

通过以下方式枚举XML中的所有数据源配置: 在Java应用程序中读取XML文件的最佳/最简单方法是什么?

对于您阅读的每个连接信息,请进行连接测试。

当您有多个Tomcat运行时,您将需要在其他xml中提及Tomcat Configuration Server xml路径,并在将来重用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM