このコードを使用して、jndi ルックアップを介してデータベース接続にアクセスしました。
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource datasource = (DataSource)envContext.lookup("TestDB");
Connection connection = datasource.getConnection();
正常に動作していました。後で、これを注釈に置き換えて、次のコードで同じことを行いました。
@Resource(name="TestDB")
DataSource datasource;
methodName(){
if(datasource!=null){
Connection connection = datasource.getConnection();}
else{
System.out.println("Datasource is null");
}
}
しかし、「DataSource is null」が表示されました。@Resource(lookup="TestDB") も試しましたが、「DataSource is null」が引き続き表示されます。データソースが null である理由