Ich versuche, Tomcat dazu zu bringen, BoneCP als Verbindungspool zu verwenden, da DBCP hier nicht korrekt funktioniert.
Ich habe versucht, es der context.xml hinzuzufügen, die meine Webapp wie folgt definiert:
<Context path="/reports" privileged="true" crossContext="true">
<Resource name="jdbc/IKOffice"
type="com.jolbox.bonecp.BoneCPDataSource"
auth="Container"
username="ik"
password="******"
jdbcUrl="jdbc:postgresql://localhost:5434/IKOffice_Core"
lazyInit="true"
partitionCount="1"
... more properties ...
logStatementsEnabled="false" />
</Context>
Aber wenn ich versuche, auf die Ressource zuzugreifen, heißt es immer:
javax.naming.NamingException: Cannot create resource instance
In der Protokolldatei sind keine Fehler zu finden, und alle erforderlichen Jars sind für die Webapp verfügbar. Was ist hier los?
Alles funktionierte, wenn ich eine Ressource wie diese verwendete:
<Resource name="jdbc/IKOffice"
auth="Container"
type="javax.sql.DataSource"
username="ik"
password="******"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5434/IKOffice_Core"
maxActive="8"
maxIdle="4" />
LÖSUNG:
Sie müssen eine BeanFactory angeben, etwa so (Zeile 3):
<Resource name="jdbc/IKOffice"
type="jcom.jolbox.bonecp.BoneCPDataSource"
factory="org.apache.naming.factory.BeanFactory"
auth="Container"
...