PoolableConnectionFactory无效句柄
问题描述:
我在新框中部署旧应用程序。当击中首次数据库,我得到PoolableConnectionFactory无效句柄
File input error: Cannot create PoolableConnectionFactory (Invalid handle)
我建立了我的context.xml中的资源,我用了unixODBC DSN,并在web.xml我的资源引用。我还有什么遗漏?
from content.xml -->
<Resource name="jdbc/MoleComp" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="-1"
removeAbandoned="false" removeAbandonedTimeout="60"
username="userName" password="passWord"
driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
url="jdbc:odbc:DSNName"/>
from app/WEB-INF/web.xml -->
<resource-ref>
<description>DB connection</description>
<res-ref-name>jdbc/MoleComp</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
谢谢。
答
首先,您应该从web.xml中删除< resource-def>。这只是定义数据源的另一种方法,您已经在context.xml中完成了这一工作。
该错误来自ODBC-JDBC桥驱动程序。因此,ODBC不在运行或者url="jdbc:odbc:DSNName"
无效。
谢谢志鸿。这是一个有效的DSN,我可以使用isql从shell中连接到它(与unixODB一起提供)。如果我给它一个无效的DSN,我会得到“无法创建PoolableConnectionFactory([unixODBC] [驱动程序管理器]未找到数据源名称,并且没有指定默认驱动程序)” – Mark 2009-08-14 18:45:07
哦,我从web上删除。 XML,仍然得到相同的错误。 –
Mark
2009-08-14 18:46:05
我没有unixODB的经验。它必须是某种环境差异,导致它在isql中工作,而不是在Java中。 – 2009-08-14 23:30:03