Ответ 1
В конце концов я проигнорировал это исключение, так как оно не закончилось. Хотя я не знаю точной причины, это не кажется фатальным.
Я загружаю источники данных через 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="@[email protected]" username="user" password="@[email protected]"
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>
В конце концов я проигнорировал это исключение, так как оно не закончилось. Хотя я не знаю точной причины, это не кажется фатальным.
Я бы предположил, что вам не хватает вызова для инициализации(). Это должно установить NPE для OdbcApi.
Я раньше думал, что это был ответ. Я ошибался.
Наконец я понял это. У меня был управляемый beans, который поддерживался базой данных. Эти управляемые beans были аннотированы @eagerКогда сервер запустил приложение из eclipse, они были созданы и инструмент попал в базу данных, чтобы получить данные. У меня возникло исключение из метода из базы данных bean (исключение нулевого указателя), и в результате соединение с базой данных осталось открытым.
Каким-то образом папка .metadata была взломана и повреждена. Я вышел из Затмения. Затем я перешел в рабочее пространство Eclipse и скопировал папку .metadata на свой рабочий стол, чтобы иметь безопасную копию, затем я удалил ее в рабочей области.
Я запустил Eclipse. Проекты не было. Я импортировал их обратно с помощью Import > File System.
Мне нужно было исправить путь сборки под свойствами проекта и в окне > Настройки, мне пришлось reset Tomcat Home. Вуала, избавилась от этой сверхнаходимой проблемы.
Это и послужило причиной проблемы. Надеюсь, это поможет кому-то.