给定上下文文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/scum">
<Resource name="jdbc/MyApp"
auth="Container"
type="javax.sql.DataSource"
username="username"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://mysql.server.com:8080/DB"
validationQuery="select 1"
maxActive="20"
maxIdle="2"/>
</Context>
我可以使用以下代码获取资源的 url:
Context xmlContext = (Context) ic.lookup("java:comp/env");
DataSource dataSource = (DataSource) xmlContext.lookup("jdbc/MyApp");
Connection connection = dataSource.getConnection();
String url = connection.getMetaData().getURL();
但是,如果连接失败,则没有元数据,不幸的是,没有 url。如何在不连接到数据源的情况下获取 url?
最佳答案
DataSource
只是一个接口(interface),你什么也拿不到。所以你可以调试DataSource
来检查它到底是什么实现类。
关于java - 在建立数据源连接之前获取 URL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52431597/