我有一个 Java 项目,我一直在尝试为我的 Ingres 数据库创建 JNDI 连接,但没有成功。我不确定是否需要包含特定于 ingres 的内容,但经过大量研究后,我无法让事情正常进行。
在我的项目中,我在 web.xml 文件和 context.xml 中有我的数据源信息
context.xml 有以下信息
<Context>
<Resource name="jdbc/myDB" auth="Container" type="javax.sql.Datasource"
username="myUser" password="password" driverClassName="com.ingres.jdbc.IngresDriver"
url="databaseURL" maxActive="8" maxIdle="4" maxWait="100" />
</Context>
我的 web.xml 有以下信息
<web-app>
<resource-ref>
<description>Project Descrip</description>
<res-ref-name>jdbc/myDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
在我的 java 代码中,我尝试使用以下四行来建立连接
Context initContext = new InitialContext();
Context envContext = (Context) initContent.lookup("java:comp/env");
Datasource ds = (DataSource) envContext.lookup("jdbc/myDB");
return ds.getConnection();
执行第三行后,我得到一个异常: NamingException - 无法创建资源实例
我发现了几十个具有相同例外的帖子,并尝试了建议的解决方案,但没有成功。我使用的是 Tomcat 7 服务器,并确保将必要的 ingres jar (iijdbc.jar) 包含到我的 WEB-INF/lib 文件夹和我的 tomcat lib 文件夹中。
任何帮助或建议将不胜感激