Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JdbcOdbcDriver.finalize()行中存在未知的NullPointerException:96_Java_Oracle_Tomcat_Nullpointerexception_Jndi - Fatal编程技术网

Java JdbcOdbcDriver.finalize()行中存在未知的NullPointerException:96

Java JdbcOdbcDriver.finalize()行中存在未知的NullPointerException:96,java,oracle,tomcat,nullpointerexception,jndi,Java,Oracle,Tomcat,Nullpointerexception,Jndi,我正在通过JNDI加载数据源,使用: JDK 1.6.0_31 Tomcat 6.0.30 当我启动Eclipse(Indigo SR 2)调试器时,它会断开: Daemon System Thread [Finalizer] (Suspended (exception NullPointerException)) JdbcOdbcDriver.finalize() line: 96 Finalizer.invokeFinalizeMethod(Object) line

我正在通过JNDI加载数据源,使用:

JDK 1.6.0_31 Tomcat 6.0.30

当我启动Eclipse(Indigo SR 2)调试器时,它会断开:

Daemon System Thread [Finalizer] (Suspended (exception NullPointerException))   
    JdbcOdbcDriver.finalize() line: 96  
    Finalizer.invokeFinalizeMethod(Object) line: not available [native method]  
    Finalizer.runFinalizer() line: 83   
    Finalizer.access$100(Finalizer) line: 14    
    Finalizer$FinalizerThread.run() line: 160   
我真的不知道是什么导致了这一切。而且,这似乎根本不会影响我的执行。我的数据源被初始化并正常使用,我得到了我期望的所有结果。据我所知,这可能与Oracle驱动程序问题有关

myApp\META-INF\context.xml

<Resource name="jdbc/conn" auth="Container"
    type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
    url="@url@" username="user" password="@password@"
    initialSize="4" maxActive="8" 
    defaultAutoCommit="false"
    accessToUnderlyingConnectionAllowed="true"
    testOnReturn="true"
    validationQuery="select 1 from dual"
    poolPreparedStatements="false"
    connectionProperties="SetBigStringTryClob=true"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
/>

myApp\WEB-INF\WEB.xml

<resource-ref>
    <description>My DataSource</description>
    <res-ref-name>jdbc/conn</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

我的数据源
jdbc/conn
javax.sql.DataSource
容器

我假设您缺少对initialize()的调用。这将修复OdbcApi的NPE

我最终忽略了这个异常,因为它不会结束执行。虽然我不知道确切的原因,但似乎并不致命。

我以前认为这就是答案。我错了

我终于明白了。我有一些由数据库支持的托管bean。这些托管bean被注释为@eager

当服务器从eclipse启动应用程序时,它们被实例化,工具转到数据库获取数据。我在方法中从数据库bean抛出了一个异常(一个空指针异常),因此,与数据库的连接保持打开状态

不知怎的,.metadata文件夹被破坏了。我退出了月食。然后我转到Eclipse工作区,将.metadata文件夹复制到我的桌面以获得一个安全副本,然后在工作区中将其删除

我重新启动了Eclipse。没有项目。我使用导入>文件系统将它们重新导入

我必须在项目属性下修复构建路径,在窗口>首选项下,我必须重置Tomcat主页。瞧,摆脱了这个超级烦人的问题


这就是问题的原因。希望这对其他人有所帮助。

人们可能希望查看JdbcOdbcDriver以供参考。@adarshr您提供的链接现在似乎指向垃圾邮件/钓鱼(或者我的计算机被感染了?)。我发现了。你使用的是哪个版本的Oracle JDBC驱动程序?我希望你能找到一个解释,但似乎没有人能很好地理解它。这是一个非常有害的答案,因为在终结方法中忽略异常会导致内存泄漏。@Gregory.K,我同意,但正如你所看到的,没有其他人响应,我也从未找到真正的解决方案。