Apache JNDI JDBC Treiber anbinden

Status
Nicht offen für weitere Antworten.

Marder1

Neues Mitglied
Hallo liebe Forumgemeinede,

ich habe ein Problem an dem ich schon mehrere Tage sitze. Wenn man dannach googelt findet man viele Menschen
mit dem gleichen Problem und viele Lösungen die den meisten Menschen nicht helfen.
Ich hoffe ihr könnt mir villeicht helfen.

Ich versuche Oracle JDBC Treiber über JNDI an einen Apache Tomcat 6 zu binden und erhalte ständig die Fehlermeldung:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

Verwendeter Treiber:

Der ganz normale Oracle JDBC Treiber: ojdbc14.jar
An ihm kanns eigentlich nicht liegen, weil er unter JAVA SE Projekte, wenn man Ihn ganz normal einbindet funktioniert.
Der Treiber liegt bei mir in \apache-tomcat-6.0.20\lib

Meine context.xml
[XML]
<Context path="/Uebung" docBase="Uebung.war"
debug="5" reloadable="true" crossContext="true">

<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:eek:racle:thin:mad:SERVER:1521:WG05t"
username="BENUTZERNAME" password="PASSWORT" maxActive="20" maxIdle="10"
maxWait="-1"/>
</Context>
[/XML]
mit den gleichen Verbindungsdaten lässt sich auch eine Verbindung von eine JAVA SE Projekt aus öffnen.
SERVER, BENUTZERNAME und PASSWORT natürlich geändert.

die context.xml liegt bei mir im Projektordner WEB-INF/lib
ich habe es auch schon versucht das Resouce-TAG in die context.xml in \apache-tomcat-6.0.20\conf reinzukopieren klappt aber auch nicht


meine web.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Uebung</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>
[/XML]
so wie es auf der Apachewebseite im HOW-TO steht


Wie ich darauf zu greife:

Ich verwende Java Server Faces und hab ein Forumular an ein Handlerfunktion gebunden in einer ganz normalen Java Klasse
diese Funktion wird auch ausgeführt. Dort versuche ich folgendermaßen eine Verbindung zur Datenbank aufzubauen:
Java:
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();

Wenn diese Funktion ausgeführt wird krieg ich folgende Fehlermeldung:


org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

Ich denke den kompletten Stacktrace muss ich nicht posten.

Kann mir bitte einer Helfen.

Danke
 

mvitz

Top Contributor
Ich kenne es nur aus dem Servlet Umfeld und da funktionierte es bei mir bisher immer.

Die context.xml muss imho jedoch innerhalb der Web-App im META-INF Ordner liegen, evtl. ist das ja der Fehler.
 

sence

Bekanntes Mitglied
Jo, das Problem war, dass der Treiber auf dem TOMCAT Server in dem LIB Verzeichniss liegen musste. War in der Hoffnung eine lösung zu finden, dass diese mit im .war intigiriert werden kann, um "unabhängig" vom Server zu sein.

Dankeee
 
U

Unregistriert

Gast
Und dann muss dummerweise auch noch innerhalb des Context-Tags direkt das Resource-Tag folgen und nicht, wie in der Tomcat-Dokumentation beschrieben, erst das Resources-Tag. Finde ich wenig intuitiv - logischer wäre, die einzelnen Resourcen im Resources-Tag zu bündeln.

Also:
<Context>
<Resource name="..." .../>
<Context>

und nicht:
<Context>
<Resources>
<Resource name="..." .../>
</Resources>
<Context>

Komischerweise wird die Resource auch bei der zweiten Syntax offenbar richtig in den Namensraum eingebunden - sie kann eben bloß aus irgendeinem Grund nicht richtig erzeugt werden.
 
U

Unregistriert

Gast
Bei mir funktioniert es mit den oben beschriebenen Einstellungen einwandfrei. Sollte das ursprüngliche Problem immer noch existieren, kann das eigentlich nur daran liegen, dass die <webapp>.xml im conf/Catalina-Verzeichnis falsch ist. Diese aktualisiert sich nämlich nach einer war-Aktualisierung nicht automatisch.
 

Snape

Bekanntes Mitglied
Sollte das ursprüngliche Problem immer noch existieren, kann das eigentlich nur daran liegen, dass die <webapp>.xml im conf/Catalina-Verzeichnis falsch ist. Diese aktualisiert sich nämlich nach einer war-Aktualisierung nicht automatisch.
Danke danke danke danke für diesen wertvollen Hinweis! Dieses Problem hat mich jetzt zwei Tage gekostet, um durch solch ein faules Ei gelöst zu werden. Ich war schon verzweifelt und wusste nicht mehr, was ich noch alles vergleichen und kontrollieren könnte.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm "Unable to cache bundle"-Fehler bei Apache Karaf Allgemeines EE 0
H JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException Allgemeines EE 24
J was ist JPA und Apache Olingo? Allgemeines EE 1
D Apache POI Probleme mit Daten(Datum) die aus Formeln entstehen Allgemeines EE 3
A Apache Shiro RBAC multi "Mandant" Allgemeines EE 0
T Problem mit den Beispielen von Apache Allgemeines EE 5
K Probleme mit Apache MyFaces 2 und ICEFaces Facelets Allgemeines EE 1
T Apache Lucene Dateien verändern Allgemeines EE 6
M Apache MyFaces Tomahawk Sandbox Allgemeines EE 5
F MySQL Connection Pool nach Apache Example Allgemeines EE 1
G Tomcat und Apache Authentifizierung koppeln Allgemeines EE 3
R log4j: apache.commons.digester.* Ausgaben unterbinden Allgemeines EE 5
haomomo *.do URLs dont work in apache web server+tomcat Allgemeines EE 3
G Unit Test einer JavaEE Anwendung schlägt fehl. JNDI Name nicht gefunden. Allgemeines EE 3
J Global JNDI Tomcat Allgemeines EE 0
P JAvaEE und JNDI Allgemeines EE 0
L JNDI auf Tomcat mit EE Allgemeines EE 4
2 Frage zu JNDI Allgemeines EE 13
B Tomcat, JNDI und datasource - Konfiguartion Allgemeines EE 2
J JNDI-lookup.. dasselbe Objekt oder Kopie? Allgemeines EE 2
A JNDI Lookup Allgemeines EE 6
E Eclipse Helios JNDI Lookup failed Allgemeines EE 5
J LDAP via JNDI Allgemeines EE 13
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
F [JNDI] Holen einer EJB Allgemeines EE 3
L Probleme mit Kompilierung von JNDI Allgemeines EE 2
B Tomcat JNDI-Realm - LDAP mit Windows testen? Allgemeines EE 2
B Problem mit jndi lookup Allgemeines EE 7
H JNDI Name für die Queue - Connection Factory in JBoss ändern Allgemeines EE 3
T jndi & tomcat & datasource Allgemeines EE 3
FINF_AW_Alex JSF JDBC - Realm - Benutzer authentifizieren Allgemeines EE 10
N Glassfish 4 JDBC-Realm Authentifizierung Beispiel gesucht Allgemeines EE 7
R JDBC und JSP Allgemeines EE 8
T Auf GlassFish JDBC-Ressourcen zugreifen Allgemeines EE 4
T MS SQL Server, GlassFish, JDBC Allgemeines EE 2
M Einbinden von JDBC-Treiber in Webprojekt Allgemeines EE 8
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
I Sun App Server JDBC MySQL Allgemeines EE 2
ichbindiegute Performance von Entity Bean create vs. JDBC insert Allgemeines EE 11
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
B jbosscmp-jdbc.xml Allgemeines EE 5
G Persistenz-Entscheidung (Entity Beans, Hibernate, JDBC) Allgemeines EE 12
K Anfängerfrage zu JDBC installation unter TOMCAT 5.0 Allgemeines EE 4
B Hilfe (dringend) - Wann lieber JDBC anstatt CMP? Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben