Tomcat + ConnectionPool + ODBC

Status
Nicht offen für weitere Antworten.

bronks

Top Contributor
Hi!

Mit einem Tomcat 5.5.7 wollte ich einen ConnectionPool über ODBC aufbauen. Von JNDI-Namen nicht gefunden bis no suitable Driver habe ich, je nach Testfall, alles mögliche zu lesen bekommen. Dadurch läßt sich das Problem nicht eindeutig erkennen.

Funktioniert das überhaupt sich einen ConnectionPool aus einer ODBC-Verbindung zusammenzubauen oder muß ich den Fehler anderswo suchen?

Danke!

Bronks
 

Bleiglanz

Gesperrter Benutzer
und mit welcher Fehlermeldung?

wie sieht die server.xml aus? der <context>? die web.xml? usw.
 

bronks

Top Contributor
@Bleiglanz:
Es funktioniert. Allerdings kann ich jetzt nicht mehr nachvollziehen, warum es vorher nicht funktioniert hat. Auf jeden Fall hat mir Deine erste Aussage schon mal beigebracht, daß es funktionieren müßte ... Danke!
 

bronks

Top Contributor
Nein! Es funktioniert doch nicht!

Auf Tomcat 5.5.7 funktioniert es einwandfrei, aber auf einem Tomcat 4.1.27 erhalte ich folgenden Fehler: Cannot load Driver class 'null'. Auf dem 4.1.31er habe ich es gerade auch gestet und da kommt: Cannot create JDBC driver from Class '' for connect URL 'null', cause: No suitable Driver.

Kann mir bitte jemand einen Tip geben, warum der 4.1.xer diesen Fehler bringt und vorallem, was ich dagegen tun kann?

Danke!


Context.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/ConnectionPoolTestOdbc">

<Resource name="jdbc/OdbcDS" auth="Container"
	factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
          type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
          url="jdbc:odbc:Datenbank"
          username="user" password="password" maxActive="20" maxIdle="10" maxWait="-1" 
 removeAbandoned="true" 
logAbandoned="true" removeAbandonedTimeout="300"/>
</Context>

Auszug aus der web.xml:
Code:
...
  <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/OdbcDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
...


Der Code der darauf zugreift:
Code:
...
            javax.naming.Context c = new javax.naming.InitialContext();
            dataSource = (javax.sql.DataSource) c.lookup("java:comp/env/jdbc/OdbcDS");
            
            Connection conn = null;

            
            conn = dataSource.getConnection();
...
 

Bleiglanz

Gesperrter Benutzer
unter dem 4er gibt es die komfortable Syntax für das <Ressource> Element noch nicht

da gibts extra <Ressourceparams>

schau mal in die Doku!
 

bronks

Top Contributor
Bleiglanz hat gesagt.:
... <Ressourceparams> ...
Danke für den Hinweis.

Hab die context.xml jetzt umgebaut. Jetzt funktioniert es nicht einmal mehr mit dem Tomcat5. Die Fehlermeldung ist die gleiche. Habe mich an der ApacheDoku orientiert. Mehrmals habe ich meine context.xml mit der Doku verglichen, aber es klappt nicht.

Was ist in dieser context.xml verkehrt.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/ConnectionPoolTestOdbc" docBase="ConnectionPoolTestOdbc">

  <Resource name="jdbc/OdbcDS"
                 auth="Container"
                 type="javax.sql.DataSource"/>
  
    <ResourceParams name="jdbc/OdbcDS">
      <parameter>
        <name>factory</name>
        <value>
            org.apache.commons.dbcp.BasicDataSourceFactory
        </value>
      </parameter>

    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>

    <parameter>
      <name>maxIdle</name>
      <value>5</value>
    </parameter>

    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>

    <parameter>
     <name>username</name>
     <value>bronks</value>
    </parameter>
    
    <parameter>
     <name>password</name>
     <value>passwort</value>
    </parameter>

    <parameter>
       <name>driverClassName</name>
       <value>
         sun.jdbc.odbc.JdbcOdbcDriver
       </value>
    </parameter>

    <parameter>
      <name>url</name>
      <value>
        jdbc:odbc:Datenbank
      </value>
    </parameter>

    <parameter>
        <name>removeAbandoned</name>
        <value>true</value>
    </parameter> 

    <parameter>
        <name>removeAbandonedTimeout</name>
        <value>300</value>
    </parameter>    

    <parameter>
        <name>logAbandoned</name>
        <value>true</value>
    </parameter>   
                
  </ResourceParams>

</Context>
 

krey

Aktives Mitglied
Hi, also ich habe das gleiche Problem! Auch die Fehlermeldung

Code:
 javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null' [...]
Caused by: java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getDriver(DriverManager.java:243) [...]
Mhh also es scheint daran zu liegen dass der Treiber nicht geladen wird!

Vieleicht liegt es ja am Tomcat release? Ich habe 5.5.9 :(

Meine server.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Server>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <GlobalNamingResources>
    <Environment
      name="simpleValue"
      type="java.lang.Integer"
      value="30"/>
    <Resource
      auth="Container"
      description="User database that can be updated and saved"
      name="UserDatabase"
      type="org.apache.catalina.UserDatabase"
      pathname="conf/tomcat-users.xml"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
    <Resource
      auth="Container"
      name="jdbc/postgres"
      type="javax.sql.DataSource"
      driverClassName="org.postgresql.Driver"
      password="....."
      maxIdle="10"
      maxWait="-1"
      username="user"
      url="jdbc:postgresql://0.0.0.0:5432/user"
      maxActive="20"/>
  </GlobalNamingResources>
  <Service
      name="Catalina">
    <Connector
        port="8080"
        redirectPort="8443"
        minSpareThreads="25"
        connectionTimeout="20000"
        maxThreads="150"
        maxSpareThreads="75"
        maxHttpHeaderSize="8192">
    </Connector>
<Connector
        port="8009"
        redirectPort="8443"
        protocol="AJP/1.3">
    </Connector>
    <Engine
        defaultHost="localhost"
        name="Catalina">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
      <Host
          appBase="webapps"
          name="localhost">
      </Host>
    </Engine>
  </Service>
</Server>

Eintrag in meiner web.xml

Code:
<resource-ref>
    <res-ref-name>jdbc/postgres</res-ref-name>
    <res-type>
        javax.sql.DataSource
    </res-type>
    <res-auth>
        Container
    </res-auth>
</resource-ref>

Muss denn sonst noch etwas modifiziert werden?

Also am security manager liegt es auch nicht, den hab ich eh zu testzwecken rausgenommen.

Das admin Tool hat noch einen Eintrag in der Datei conf/Catalina/localhost/krey.xml gemacht und zwar:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<Context
    docBase="/home/krey/public_html/jsp"
    privileged="true">
  <Resource
    auth="Container"
    name="jdbc/postgres"
    type="javax.sql.DataSource"/>
  <ResourceLink
    global="jdbc/postgresql"
    name="jdbc/postgresql"
    type="javax.sql.DataSource"/>
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Wieso sind da so viele WatchedResource ´s? Wird nicht nur eine gebraucht?

Helft mir mal bitte, ich komme hier garnicht mehr klar! Versuche dass schon seit Tagen dass zum laufen zu bringen :(...

Als Treiber habe ich den zu der Datenbank passenden und auch so funktionierenden "pg73jdbc2ee.jar" ! Direktes Verbingen u.s.w. funktioniert ohne Probleme! Nur die Sache mit Tomcat :( *grrrrrr*

Schonmal vielen Dank!

Grüße, Martin
 

krey

Aktives Mitglied
Juchu, ich habe den Fehler gefunden! Also beim neuen Tomcat werden die Ressoruce Einträge in der server.xml ignoriert. Es gibt eine andere Konfigurationsdatei... mhh wie hieß die gleich. Ahh context.xml! Schreib da mal die Ressource rein. Danach musst du nurnoch den Security Manager anpassen. Wenn ich wieder an dem anderen Computer bin, kann ich dir bei bedarf einen Auszug aus der Datei schicken. Wenn du´s noch brauchst schick mir einfach ne pm.
 

bronks

Top Contributor
krey hat gesagt.:
Juchu, ich habe den Fehler gefunden! ...
Ich hab mir jetzt den 5.5.9er runtergeladen, nach dem ich das 5.5.11er AlphaRelease innerhalb weniger sekunden total zerlegt hab.

Ich habe im Admintool einen DBCP angelegt. In die context.xml den ResourceLink und in die web.xml den RessourceRef reingeschrieben: Klappt auf anhieb. Der vom Admintool erzeugte Code schaut genauso aus, wie das was ich oben geschrieben habe, nur daß er es in die server.xml geschrieben hat.

Wenn ich auf dem 4.1.27er das auch mit dem Admintool mach, dann funktioniert rein garnichts ... und wenn ich es per Hand mache, wie oben, dann geht auch nichts ...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Tomcat Application Path bestimmen Allgemeines EE 0
TheWhiteShadow JSF plugins für tomcat webapp Allgemeines EE 0
X Tomcat checkParachute Allgemeines EE 3
C Servlet Tomcat/Jersey findet REST-Service nicht Allgemeines EE 3
J Global JNDI Tomcat Allgemeines EE 0
N WebService WAR-File auf Tomcat-Server Allgemeines EE 1
C WebSocket in Tomcat wirft 404 Allgemeines EE 0
S Eclipse mit Tomcat und Jersey Allgemeines EE 7
S Fehlersuche in Eclipse/Tomcat -> Error-log?? Allgemeines EE 2
S Tomcat und 404 -> von jetzt auf gleich Allgemeines EE 4
L JNDI auf Tomcat mit EE Allgemeines EE 4
E Servlet Tomcat Method Signature Resolution Allgemeines EE 7
J Logging und Monitoring unter Tomcat Allgemeines EE 2
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
D JSF JSF 2.0 + ICEFaces + Tomcat 7 Allgemeines EE 3
R Sessionmanagement und Tomcat Allgemeines EE 6
W Tomcat Support mit SLA? Allgemeines EE 3
P Tomcat lädt falsche Datei obwohl richtig angegeben Allgemeines EE 11
N Tomcat funktioniert nach shutdown/startup nicht mehr korrekt Allgemeines EE 9
B Tomcat, JNDI und datasource - Konfiguartion Allgemeines EE 2
JimPanse Tomcat Fehler nach redeploy Allgemeines EE 5
A Java Tomcat findet Website nicht Allgemeines EE 8
S Anfängerfrage Eclipse/Tomcat Allgemeines EE 4
H Installer für Tomcat-Anwendung Allgemeines EE 5
A Tomcat in Eclipse Allgemeines EE 11
T Tomcat: Sessions bleiben zu lange erhalten Allgemeines EE 13
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
A Tomcat, Exceptions beim redeploy Allgemeines EE 4
P Hilfe: Tomcat periodischer Absturz Allgemeines EE 5
MQue Tomcat reload Allgemeines EE 4
neurox Tomcat stoppen Allgemeines EE 1
S Unterschied zwischen Tomcat und Application Server? Allgemeines EE 3
MQue Tomcat PermGen Allgemeines EE 7
MQue Tomcat Methodenaufruf Allgemeines EE 3
P Eclipse Tomcat Plugin funktioniert nicht mit externem TC-Server? Allgemeines EE 4
MQue TCP- Verbindung nach Tomcat- Start (global) starten Allgemeines EE 4
reibi Tomcat Proxy eintragen Allgemeines EE 2
P CXF Project auf Tomcat laufen lassen - wie? Allgemeines EE 35
R (TOMCAT] Installation Tomcat auf WinXP Allgemeines EE 8
S Tomcat + Eclipse Allgemeines EE 6
T Security Manager in Tomcat Allgemeines EE 2
S Unterschiedliche Pfade bei Tomcat Allgemeines EE 4
ps EJB3 in Tomcat. das hat selbst mich erstaunt Allgemeines EE 18
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
G Probleme im Tomcat - loading WebappClassLoader Allgemeines EE 3
O ApplicationServer vs. Tomcat Allgemeines EE 5
G Verbindung zu Tomcat Allgemeines EE 15
B Tomcat -> Funktions User Credentials hinterlegen Allgemeines EE 7
B fmt:setBundle => Wo liegt die Properties-Datei im Tomcat? Allgemeines EE 3
U Tomcat Compilierproblem Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
M Gelegentlicher Absturz Tomcat Anwendung: PermGen Space Allgemeines EE 6
R Error ServletContextListener auf Tomcat 6 Allgemeines EE 2
Y myFaces 1.2 und Tomcat 5.x / 6.0 Allgemeines EE 9
S tomcat session timeout - und was danach? Allgemeines EE 1
A Tomcat startet nicht, Einstellungsfehler? Allgemeines EE 3
S Auf Datei ausserhalb des Tomcat zugreifen Allgemeines EE 4
S JSP / Tomcat / Eclipse / Unable to compile class for JSP Allgemeines EE 4
E JBoss mit existierendem Tomcat nutzen? Allgemeines EE 4
M JSP: Tomcat: Serverfehler 500 nur beim IE. Allgemeines EE 2
G JSF 1.2 unter Netbeans 6 mit Tomcat 6.0 ->Navigationsprob Allgemeines EE 6
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
L Tomcat Service mit JPDA debugging starten Allgemeines EE 2
J Tomcat: "Unable to get connection, DataSource invalid&q Allgemeines EE 8
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
F Tomcat: zentraler Class-Ordner? Allgemeines EE 2
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
byte Tomcat Deployment Problem (HTTP Status 503) Allgemeines EE 8
H Tomcat, MySQL Allgemeines EE 4
B tomcat verbergen Allgemeines EE 3
M classNotFoundexception vom tomcat Allgemeines EE 10
B Liferay + Tomcat Allgemeines EE 4
K tomcat: session-unabhängiges speichern Allgemeines EE 3
G Tomcat übersetzt nichts mehr Allgemeines EE 6
M tomcat beim booten mit starten Allgemeines EE 4
F Serverdienst in Tomcat implementieren Allgemeines EE 14
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
V tomcat 6 webserver oder was ist sein Sinn? Allgemeines EE 3
G eigener Tomcat-Connector f. propiet. Protokoll via TCP/IP Allgemeines EE 2
J wsdl-tomcat-AXIS Allgemeines EE 2
G Tomcat unter Eclipse starten Allgemeines EE 9
F Tomcat mit 128 MB Ram Allgemeines EE 9
C Unable to query Tomcat Manager: couldn't connect to host Allgemeines EE 2
A Cronjob mit Tomcat starten ? Allgemeines EE 4
B Connection Poll ohne TomCat Allgemeines EE 5
N Tomcat GWT-Anwendung - An beliebiger Stelle schreiben Allgemeines EE 2
E Tomcat Einstellungen Allgemeines EE 10
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Eine kurze Verständnisfrage zum Tomcat Allgemeines EE 2
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
F webanwendung läuft nicht auf Tomcat Allgemeines EE 2
M Tomcat, Hibernate, MySQL und die EOFException Allgemeines EE 7
Y Tomcat Thread-Handling Allgemeines EE 2
K Tomcat als Client nutzen Allgemeines EE 2
L Tomcat auf Windows Server 2003 Allgemeines EE 10
T Sysdeo Eclipse Tomcat Plug-in Allgemeines EE 4
H Tomcat in jbuilder mit startup.bat starten Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben