4
我有以下類獲得JDBC連接: 正確的JNDI @資源(名稱)
package util;
import java.sql.Connection;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class OracleConnection implements AutoCloseable{
private final String oracle_DS_CTX = "java:jboss/oracleDS";
// @Resource(name="java:jboss/oracleDS")
// private DataSource ds;//doesn't work
private Connection _conn;
public OracleConnection() throws SQLException, NamingException{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(oracle_DS_CTX);
_conn = ds.getConnection();
}
@Override
public void close() throws Exception {
if(_conn != null){
_conn.close();
}
}
public Connection getConnection() throws SQLException {
return _conn;
}
}
我使用@Resource註解有問題。通過InitialContext獲得的數據源工作witohout問題,但我不知道我應該把什麼字符串放入資源名稱(在我的代碼中註釋掉)。
我曾嘗試:
@Resource(名稱= 「java的:的JBoss/oracleDS」)
@Resource(名稱= 「oracleDS」)
AS是JBOSS AS7
我使用Web控制檯:9990端口創建它。但是我查看了standalone.xml,並且有一個pool-name屬性,它是正確的名稱。解決,謝謝。 – Joe 2013-03-21 14:11:32