簡體   English   中英

從數據源,JNDI打開連接時出現NameNotFoundException

[英]NameNotFoundException while opening connection from Datasource, JNDI

我有一個使用JSF的應用程序,我手動選擇了連接,但是現在我必須更改它並打開數據源中的所有連接,因此目錄中有一個.xml文件(Jboss 7)

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema">
    <datasource
        jndi-name="java:jboss/datasources/MyForum"
        enabled="true"
        use-java-context="true"
        pool-name="MyForum">
            <connection-url>jdbc:hsqldb:hsql://localhost</connection-url>
            <driver>hsqldb.jar</driver>
            <pool></pool>
            <security>
                <user-name>sa</user-name>
                <password></password>
            </security>
    </datasource>
</datasources>

然后我有代碼來訪問類“ JdbcHelper”中的JNDI名稱

public Connection createConnection() {

    try {
        String jndiKey = getProperty("JNDI_DATASOURCE");

        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup(jndiKey);
        return ds.getConnection();

    } catch (NamingException e) {
        throw new RuntimeException("Can't open JDBC conection from JNDI", e);
    } catch (SQLException e) {
        throw new RuntimeException("Can't open JDBC conection", e);
    }
}

DataSource ds = (DataSource) ctx.lookup(jndiKey);異常的行是此DataSource ds = (DataSource) ctx.lookup(jndiKey); 我不知道您是否需要更多信息,但是如果您只想問,我真的需要這樣做,而我找不到解決方法:(

更新,這是該異常的詳細信息

datasources/MyForum -- service jboss.naming.context.java.jboss.datasources.MyForum

提前非常感謝您。 :)

我的猜測是您沒有正確初始化InitialContext ,這可能會幫助您: 在JBoss AS 7.1.1中創建初始Context。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM