MySql Datasource 5.1.12 auf Tomcat 6 einrichten

Stefan2902

Grünschnabel
Hallo,

ich versuche verzweifelt, eine MySQL Datasource in Tomcat einzurichten.

Um dies zu tun, bin ich folgender Anleiung gefolgt:

Apache Tomcat 6.0 - JNDI Datasource HOW-TO

1. Schritt: Anpassung der Datei /[Tomcat]/conf/context.xml wie folgt:

HTML:
<?xml version="1.0" encoding="UTF-8"?>
<Context> 
               <Resource name="jdbc/MySqlEndur" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="name" password="pw" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/endur"/>
 
</Context>

2. Schritt: Anpassung der Datei WEB-INF/web.xml wie folgt:

HTML:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/MySqlEndur</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

3. Schritt: Exportieren des "Dynamischen Web Projektes" aus Eclipse heraus in eine WAR Datei.

4. Schritt: Upload der WAR Datei mittels Tomcat manager http://localhost:8080/manager/html/list

Um die JNDI Verbindung nun zu testen, habe ich ein "Runner" Java Klasse geschrieben, die wie folgt aussieht:

Code:
[...]
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("jdbc/MySqlEndur");
        Connection con = ds.getConnection();
[...]

Beim Ausführen bekomme ich stets die folgende Fehlermeldung:

Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.eet.endur.connex.EndurConnexAdapter.getTrades(EndurConnexAdapter.java:82)
at com.eet.endur.connex.Runner.main(Runner.java:21)

Die offensichtliche Frage ist, warum ich diese Fehlermeldung bekomme. Ich weiß mir da im Moment nicht wirklich zu helfen.

Darüber hinaus stellt sich mir die Frage, ob es ein Tool gibt, welches es erleichtert (vielleicht grafisch) eine JNDI Datasource in Tomcat einzurichten und zu testen? Ich bin mir nämlich noch nicht mal sicher, ob die Einrichtung richtig war?!

Hier meine Versionsnummern:

Eclipse J2EE: Build 20100218-1602
Apache Tomcat: 6.0.26
Java: 1.6.0_18-b07
MySQL: 5.1
MySQL Connector: 5.1.12
 

Neue Beiträge

Zurück