在建立数据源连接之前获取URL值

时间:2018-09-20 18:59:00

标签: java xml jndi

给出上下文文件:

    <?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>

我可以使用以下代码获取资源的网址:

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。如何在不连接到数据源的情况下获取网址?

1 个答案:

答案 0 :(得分:-1)

DataSource只是一个界面,您什么也收不到。因此,您可以调试DataSource来检查它实际上是什么实现类。