gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 23:16:19 25 4
gpt4 key购买 nike

请容忍我的英语,如果我的问题不清楚或令人困惑,请告诉我,我会尝试重新措辞:)

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

<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

通过 What is the best/simplest way to read in an XML file in Java application? 从 XML 中枚举所有数据源配置

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

由于您有多个 Tomcat 正在运行,因此您需要在不同的 xml 中提及 Tomcat 配置服务器 xml 路径并在将来重用。

关于java - 测试server.xml中配置的所有数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48924610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com