0

weblogicサーバーに設定したデータソースを使用しようとしています。データソースJNDI名=thinOracleDataSource

私のコードには次のものがあります

public class DAOBean implements java.io.Serializable {
private Connection conn;
public void connect() throws ClassNotFoundException,
SQLException, NamingException {
Context ctx = new InitialContext();
// Lookup using JNDI name.
DataSource ds = (javax.sql.DataSource) ctx.lookup("thinOracleDataSource");
conn = ds.getConnection();

}

しかし、私はこのエラーを受け取ります

 javax.naming.NameNotFoundException: While trying to look up /thinOracleDataSource in /app/webapp/PreAssignment2/24911485.; remaining name '/thinOracleDataSource'

JNDI名を正しい方法で探していますか?または私は何かが欠けていますか?助けてくれてありがとう!

編集:これは、weblogicコンソールから取得できるjndiツリーです ここに画像の説明を入力してください

4

2 に答える 2

3

jdbc/thisOracleDataSourceWeblogicでデータソースに名前を付けて、次のように参照してください。

DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/thinOracleDataSource");

また、データソースがweblogicJavaサーバーを「ターゲット」にしていることを確認してください。これはすべて、Weblogic管理コンソールで実行できます。

于 2012-10-26T15:58:13.773 に答える
1

JNDIキーはおよそのようになります"java:comp/env/jdbc/thinOracleDataSource"。JNDIでのアクセス(およびおそらく検索)を許可するWeblogicコンソールを使用して確認できます。したがって、コードを記述する前にこれを手動で確認できます。

于 2012-10-26T15:32:26.470 に答える