JSP --> Verbindung zur MySQL Datenbank geht nicht ! HILFF

Status
Nicht offen für weitere Antworten.

markwaldhoff

Mitglied
Hi Leute !

Ich bin jetzt schon seit ca. 2 Stunden an dem Problem das ich keine Verbindung zu meiner lokalen mySQL Datenbank bekommen.
Folgende JSP Seite habe ich testweise geschrieben:

Code:
<%@ page language="java" import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
   <title>databasetest</title>
</head>
<body>

<%
String dbHost = "localhost";
String dbPort = "3306";
String dbName = "test";
String user = "mark";
String passwd = "eins11";

// DB-Treiber initialisieren
try
{
    //Class.forName("org.gjt.mm.mysql.Driver");
	Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException cnfe)
{
    System.out.println("Treiber kann nicht geladen werden: "+cnfe.getMessage());
}

//Verbindung aufbauen
try
{
    Connection conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName, user, passwd);
    
    if (conn != null)
    {
        try
        {
        	Statement statement = conn.createStatement();
			String query = "Select * from article";
			ResultSet result = statement.executeQuery(query);
			
			while(result.next())
			{
				String pd = result.getString("publication_date");
				String title = result.getString("title");
				String content = result.getString("content");
				out.println(pd+" "+title+" "+content+" ");
			}
			
        }
        catch(SQLException sqle)
        {
            System.out.print(sqle.getMessage());
        }
        finally
        {
        	conn.close();
        }
    }
}
catch(SQLException sqle)
{
    System.out.println("Verbindung ist fehlgeschlagen: " + sqle.getMessage());
} 
 
%>
</body>
</html>

In der Tabelle gibt es auch einen Datensatz.

Die Fehlermeldung die auf der Konsole erscheint lautet:

Verbindung ist fehlgeschlagen: Error during query: Unexpected Exception: java.lang.ArrayIndexOutOfBoundsException message given: 35

Wenn ich mit dem Debugger einen Breakpoint, ganz am Anfang setze, dann steigt er nach dieser Zeile aus:
Connection conn = DriverManager.getConnection("jdbc:mysql.......
Danach springt er sofort in den catch-Zweig und gibt die Fehlermeldung aus.

Scheint also irgendwas mit dem Verbindungsaufbau nicht zu stimmen.... fällt euch vielleicht etwas auf ????

Gruss,
Mark
 

markwaldhoff

Mitglied
KSG9|sebastian hat gesagt.:
StackTrace bitte
Und...Code in JSP = IIHH pfui bäh

Normalerweise möchte ich auch keinen Code in JSP verwenden !
Ist halt nur eine JSP Seite zum testen der DB Verbindung.... wenn ich das hinbekommen habe, kapsel ich die DB Connection natürlich in eine Klasse.

Hier die Fehlermeldung mit Stacktrace:



Code:
Verbindung ist fehlgeschlagen: Error during query: Unexpected Exception: java.lang.ArrayIndexOutOfBoundsException message given: 35
java.sql.SQLException: Error during query: Unexpected Exception: java.lang.ArrayIndexOutOfBoundsException message given: 35
	at com.mysql.jdbc.Connection.execSQL(Connection.java:1913)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:1842)
	at com.mysql.jdbc.Statement.executeQuery(Statement.java:1064)
	at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:979)
	at com.mysql.jdbc.Connection.connectionInit(Connection.java:905)
	at com.mysql.jdbc.Driver.connect(Driver.java:311)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at org.apache.jsp.dbtest_jsp._jspService(org.apache.jsp.dbtest_jsp:74)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
 
A

Anmeldeboykottierer

Gast
Hi,
ich kann hier nur zustimmen, es ist keine schöne Lösung die du da präsentierst. Hier gilt mal wieder: "Mach es lieber gleich richtig!"
Du solltest nie in ein JSP (das direkt aufgerufen werden kann) ein Passwort oder andere Verbindungsdaten speichern. Gehört sich nicht!
Verwende für die Logik immer lieber Servlets! JSPs solltest du nur zur Anzeige verwenden. Das ist einfach sauberer und die sind auch dafür optimiert.
Was Datenbankenverbindungen angeht, so solltest du über einen ConnectionPool nachdenken. Hierbei wird eine bestimmte Anzahl von Verbindungen in einem Pool gehalten und auf Anfrage eine freie entnommen. Hat eine Menge Vorteile (glaub mir, du möchtest nicht wirklich für jede Anfrage eine Connection erstellen!)

Gruß Der Anmeldeboykottierer
 

markwaldhoff

Mitglied
Anmeldeboykottierer hat gesagt.:
Hi,
ich kann hier nur zustimmen, es ist keine schöne Lösung die du da präsentierst. Hier gilt mal wieder: "Mach es lieber gleich richtig!"
Du solltest nie in ein JSP (das direkt aufgerufen werden kann) ein Passwort oder andere Verbindungsdaten speichern. Gehört sich nicht!
Verwende für die Logik immer lieber Servlets! JSPs solltest du nur zur Anzeige verwenden. Das ist einfach sauberer und die sind auch dafür optimiert.
Was Datenbankenverbindungen angeht, so solltest du über einen ConnectionPool nachdenken. Hierbei wird eine bestimmte Anzahl von Verbindungen in einem Pool gehalten und auf Anfrage eine freie entnommen. Hat eine Menge Vorteile (glaub mir, du möchtest nicht wirklich für jede Anfrage eine Connection erstellen!)

Gruß Der Anmeldeboykottierer

Wie schon oben geschrieben ist das nur eine TEST-JSP !!!! :lol:
Meine richtige Anwendung an der ich gerade bastel, hat eine Klasse "ConnectionManager.java" welche die Verbindung zur Datenbank herstellt und eine Connection liefert.
 

Leroy42

Top Contributor
Anmeldeboykottierer hat gesagt.:
Du solltest nie in ein JSP (das direkt aufgerufen werden kann) ein Passwort oder andere Verbindungsdaten speichern. Gehört sich nicht!

Was ist das denn für ein Unsinn! :autsch:

Eine JSP wird nie direkt aufgerufen. Beim erstmaligen Aufruf erzeugt der Server
daraus ein Servlet, das dann aufgerufen wird.
 

markwaldhoff

Mitglied
Kann mir wirklich niemand helfen ?
ich habe jetzt mal eine andere Version vom mysql-connector runtergeladen (5.0.3), aber bis jetzt tut sich nicht viel mehr.
Ansonsten nutze ich XAMPP 1.5.3 mit MYSQL 5.0.21.

Kann in dem Stacktrace den ich weiter oben gepostet habe auch niemand was erkennen ?


EDIT:

Jetzt habe ich mir gerade mal die Doku zur mysql-connector Version 5.0.3 angesehen.
Dort gibt es ein Kapitel "Using Connector/J with Tomcat".
Dort wird das ganze so beschrieben, das ich am Anfang eine JNDI Date Source anlegen muss, indem ich im entsprechenden Kontext in der server.xml folgendes hinzufüge:

Code:
<Context ....>
...
<Resource name="jdbc/MySQLDB"
auth="Container"
type="javax.sql.DataSource"/>
<!-- The name you used above, must match _exactly_ here!
The connection pool will be bound into JNDI with the name
"java:/comp/env/jdbc/MySQLDB"
-->
<ResourceParams name="jdbc/MySQLDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Don't set this any higher than max_connections on your
MySQL server, usually this should be a 10 or a few 10's
of connections, not hundreds or thousands -->
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<!-- You don't want to many idle connections hanging around
if you can avoid it, only enough to soak up a spike in
the load -->
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<!-- Don't use autoReconnect=true, it's going away eventually
and it's a crutch for older connection pools that couldn't
test connections. You need to decide whether your application is
supposed to deal with SQLExceptions (hint, it should), and
how much of a performance penalty you're willing to pay
to ensure 'freshness' of the connection -->
<parameter>
<name>validationQuery</name>
<value>SELECT 1</value>
</parameter>
<!-- The most conservative approach is to test connections
before they're given to your application. For most applications
this is okay, the query used above is very small and takes
no real server resources to process, other than the time used
to traverse the network.
If you have a high-load application you'll need to rely on
something else. -->
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<!-- Otherwise, or in addition to testOnBorrow, you can test
while connections are sitting idle -->
<parameter>
<name>testWhileIdle</name>
<value>true</value>
</parameter>
<!-- You have to set this value, otherwise even though
you've asked connections to be tested while idle,
the idle evicter thread will never run -->
<parameter>
<name>timeBetweenEvictionRunsMillis</name>
<value>10000</value>
</parameter>
<!-- Don't allow connections to hang out idle too long,
never longer than what wait_timeout is set to on the
server...A few minutes or even fraction of a minute
is sometimes okay here, it depends on your application
and how much spikey load it will see -->
<parameter>
<name>minEvictableIdleTimeMillis</name>
<value>60000</value>
</parameter>

<parameter>
<name>username</name>
<value>someuser</value>
</parameter>
<parameter>
<name>password</name>
<value>somepass</value>
</parameter>

<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to MySQL, notice
that if you want to pass any other MySQL-specific parameters
you should pass them here in the URL, setting them using the
parameter tags above will have no effect, you will also
need to use & to separate parameter values as the
ampersand is a reserved character in XML -->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>
</ResourceParams>
</Context>


Heisst das jetzt, das ich den mysql Connector überhaupt nicht ohne JNDI Date Source nutzen kann ????
Das wäre ja wirklich dumm...
 

markwaldhoff

Mitglied
Das Problem hat sich gerade geklärt ! :D

Ich habe die mysql-connector.jar ins Tomcat_Root/common/lib Verzeichnis kopiert und noch unter WEB-INF/lib der Webapplikation. Damit ist die Anwendung anscheinend nicht klar gekommen.
Ich habe die jar aus WEB-INF/lib entfernt und jetzt geht es !!! JUUPPPPPPIIIIIIIIII !!!! :applaus: :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java Verbindung mit mysql Datenbank Java Basics - Anfänger-Themen 3
R Input/Output Verbindung mit mySql-Datenbank Java Basics - Anfänger-Themen 9
A Erste Schritte Verbindung zu MySQL Datenbank herstellen Java Basics - Anfänger-Themen 7
F Verbindung zu MySql Datenbank Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
D Eine MySQL Verbindung in mehreren Klassen Java Basics - Anfänger-Themen 8
K Verbindung zu MySQL Java Basics - Anfänger-Themen 4
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
X 1 MySQL-Verbindung und viele Threads Java Basics - Anfänger-Themen 4
S MySQL-Verbindung Java Basics - Anfänger-Themen 4
M FTP-Verbindung mit Apache Commons Net Java Basics - Anfänger-Themen 5
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
D Verbindung zu xampp Java Basics - Anfänger-Themen 4
C SFTP Verbindung nicht möglich Java Basics - Anfänger-Themen 4
G Socket Verbindung aufbauen Java Basics - Anfänger-Themen 11
I Best Practice Saubere Verbindung zwischen API und Business Layer mit DTO's Java Basics - Anfänger-Themen 2
B Quicksort in Verbindung mit einem Projekt Java Basics - Anfänger-Themen 1
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
R Keine Verbindung mit MariaDB Java Basics - Anfänger-Themen 18
M Datenbank verbindung Java Basics - Anfänger-Themen 19
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
B Wie steht UML mit Java in Verbindung? Java Basics - Anfänger-Themen 1
P Schleife für insert() und delete() im StringBuilder in Verbindung mit indexOf() Java Basics - Anfänger-Themen 7
P Verbindung von Zwei Kreisen löschen ! Java Basics - Anfänger-Themen 6
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
N httpclient - Verbindung hängt ? Java Basics - Anfänger-Themen 13
P Interface Verbindung GUI zum Programm Java Basics - Anfänger-Themen 2
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
E mit java-anwendung internet verbindung unterbrechen Java Basics - Anfänger-Themen 5
L Verbindung von Anwendung mit GUI Java Basics - Anfänger-Themen 6
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
S Https Verbindung aufbauen zum File Download Java Basics - Anfänger-Themen 7
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
S Fehler beim Auslösen des ActionListeners in Verbindung mit einer Queue Java Basics - Anfänger-Themen 5
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
S Datentypen Regex in Verbindung mit einem Integer Wert Java Basics - Anfänger-Themen 3
E Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel Java Basics - Anfänger-Themen 2
0 Postgres verbindung Java Basics - Anfänger-Themen 4
B Verbindung zu einen anderen Rechner Java Basics - Anfänger-Themen 2
B Derby-Java-Verbindung Java Basics - Anfänger-Themen 2
I Datenbank - nach erster Verbindung keine Verbindung mehr Java Basics - Anfänger-Themen 3
J Access-Verbindung Java Basics - Anfänger-Themen 2
H Probleme mit .Jar in Verbindung mit Bildern Java Basics - Anfänger-Themen 10
S Verbindung Klassen<-> Klassen/DB Java Basics - Anfänger-Themen 2
E DB-Verbindung zu OpenOffice: Base Java Basics - Anfänger-Themen 3
J VPN Verbindung Java Basics - Anfänger-Themen 6
M Verbindung zu einem Server über Eclipse Java Basics - Anfänger-Themen 6
G FTP Verbindung in Applet Java Basics - Anfänger-Themen 3
S Java Applet - Verbindung zum Eigenen Server Java Basics - Anfänger-Themen 2
J DB-Verbindung Java Basics - Anfänger-Themen 2
TiME-SPLiNTER mehrere HTTPRequests mit selber Verbindung Java Basics - Anfänger-Themen 2
F Peer-to-Peer Verbindung? Java Basics - Anfänger-Themen 5
B Verbindung zur Datenbank (SQL.) Java Basics - Anfänger-Themen 13
R Java, Bluetooth: mit PC eine SPP Verbindung aufbauen Java Basics - Anfänger-Themen 1
G Link Verbindung Java Basics - Anfänger-Themen 2
G Verbindung zu einer Oracle DB aufbauen Java Basics - Anfänger-Themen 2
G Verbindung herstellen Java Basics - Anfänger-Themen 3
M Telnet Verbindung aufbauen Java Basics - Anfänger-Themen 2
M SQL Verbindung Java Basics - Anfänger-Themen 9
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
G SSL Verbindung testen? Java Basics - Anfänger-Themen 1
J Problem mit forschleifen in Verbindung mit Kondtional operat Java Basics - Anfänger-Themen 2
S Server/Client Verbindung Java Basics - Anfänger-Themen 2
R JDBC Verbindung geht nicht Java Basics - Anfänger-Themen 4
G addKeyListener in verbindung mit JFrame !? Java Basics - Anfänger-Themen 2
D java in verbindung mit svg und html Java Basics - Anfänger-Themen 3
J Verbindung zu dbf Dateien Java Basics - Anfänger-Themen 6
D Verbindung von Methoden und Felder Java Basics - Anfänger-Themen 3
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
N SSH-Verbindung zu entferntem Rechner aufbauen Java Basics - Anfänger-Themen 5
G Programmstart mit JAR File - keine DB-Verbindung Java Basics - Anfänger-Themen 2
megachucky GUI-Problem in Verbindung mit while-Schleife und Listener Java Basics - Anfänger-Themen 4
C No suitable driver found for jdbc:odbc:mysql Java Basics - Anfänger-Themen 8
E Mysql Update wenn es nicht existiert insert Java Basics - Anfänger-Themen 14
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
H Verbindungsprobleme BluJ und MySQL Java Basics - Anfänger-Themen 1
R Java mit MySQL - Verbindungsprobleme Java Basics - Anfänger-Themen 1
B Arquillian installieren - Maven, WildFly, MYSQL Java Basics - Anfänger-Themen 1
M Java Mysql ausführbare datei Java Basics - Anfänger-Themen 7
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
Q-bert MYSQL-Eintrag Java Basics - Anfänger-Themen 2
J Sonderzeichenproblem bei Datenabfrage in MySQL Java Basics - Anfänger-Themen 6
F Java MySQL Java Basics - Anfänger-Themen 3
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
D zu viele MySQL Connections Java Basics - Anfänger-Themen 18
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
B MySQL starten / stoppen -> Stoppen erzeugt neuen Prozess Java Basics - Anfänger-Themen 0
B MySQL Path bekommen Java Basics - Anfänger-Themen 40
P Brauche Hilfe bei ResultSet mit MySQL Java Basics - Anfänger-Themen 6
H JAva und MySQL Java Basics - Anfänger-Themen 1
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24

Ähnliche Java Themen

Neue Themen


Oben