【发布时间】:2018-06-21 07:19:32
【问题描述】:
我正在使用一个 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>
Context的设置是在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 之后进行查找
问候,
【问题讨论】:
-
在 WEB-INF 中创建 glassfish-web.xml
jdbc/master jdbc/master-name>
标签: java datasource jndi java-ee-8