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

标签 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>

我可以使用以下代码获取资源的 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/

相关文章:

java - 在 CrafterCMS 中,如何将 ICE 添加到重复组中的项目?

java - 具有基于 Java 的配置的 Spring MVC - 找不到静态资源的 404

java - 检测两个物体之间的碰撞并使碰撞点增加

html - 如何计算 XML 文件的段落数并使用 XSLT 在 HTML 文件中显示它们?

Java XML 到数组

java - 如何在读/写过程中保留 xml 文档中的文档类型信息?

java - 如何继承OAuth2AuthenticationProcessingFilter或添加自定义过滤器

spring - cxf 相互 SSL 配置外部化 key 和密码以使用 JNDI

jetty-maven-plugin 未从 Jetty.xml 添加 JNDI 数据源资源

java - 每次使用新的InitialContext JNDI 查找EJB?