小编ali*_*ali的帖子

以编程方式将数据源添加到嵌入式tomcat 7中的JNDI上下文

我正在尝试在服务器启动之前注册一个新的数据源,但是我正在查找执行的查找

javax.naming.NameNotFoundException:名称[jdbc/db]未绑定在此Context中.无法找到[jdbc].

这是我启动tomcat的方式:

    Tomcat tomcat = new Tomcat();
    //...
    ContextResource resource = new ContextResource();
    resource.setName("jdbc/db");
    resource.setAuth("Container");
    resource.setType("javax.sql.DataSource");
    resource.setScope("Sharable");
    resource.setProperty("driverClassName", "org.hsqldb.jdbc.JDBCDriver");
    resource.setProperty("url", "jdbc:hsqldb:hsql://localhost:1234/mydb1");

    tomcat.getServer().getGlobalNamingResources().addResource(resource);
    tomcat.start();
    tomcat.getServer().await();
Run Code Online (Sandbox Code Playgroud)

查找:

    Connection conn = null;
    try {
        Context initContext = new InitialContext();
        Context envContext = (Context) initContext.lookup("java:/comp/env");
        DataSource ds = (DataSource) envContext.lookup("jdbc/db");

        conn = ds.getConnection();
        conn.createStatement()....
    } catch (Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

java tomcat jndi datasource jdbc

4
推荐指数
2
解决办法
5437
查看次数

标签 统计

datasource ×1

java ×1

jdbc ×1

jndi ×1

tomcat ×1