[英]javax.naming.NameNotFoundException on Context lookup Java
我正在使用Payara應用程序服務器,在該服務器上定義了一個連接池,以便在應用程序中查找它。 從應用程序服務器到數據庫的ping操作正常。
在我的domain.xml中,數據庫資源配置如下:
<jdbc-resource pool-name="MasterPool" jndi-name="jdbc/master"></jdbc-resource>
<jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.ClientDataSource40" name="MasterPool" res-type="javax.sql.DataSource">
...
</jdbc-connection-pool>
上下文的設置是基於servlet的init方法。
public void init() throws ServletException {
Context env = null;
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");
try {
env = new InitialContext(ht);
pool = (DataSource) env.lookup("master");
System.out.println("Data source found");
}
catch(NamingException ne) {
throw new ServletException(ne);
}
}
您能否提供有關此消息的一些見解:
javax.servlet.ServletException: javax.naming.NameNotFoundException: master
我試圖在jdbc / master和java:/ comp / env / jdbc / master之后進行查找
問候,
確保在META-INF / context.xml中有以下行
<Resource auth="Container"
driverClassName="com.mysql.jdbc.Driver"
......
name="master" // this line is important
.......
/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.