Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem beim Datenbankzugriff mit JSP

Empfohlene Antworten

Veröffentlicht

Hallo,

ich versuche gerade auf eine Oracle Datenbank mit JSP zuzugreifen, habe aber das Problem das diese Fehlermeldung kommt:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: oracle.jdbc.driver.OracleDriver

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

usw.

Bei mir läuft der Apache Tomcat Server 4.1.12. Der Zugriff auf normale JSP-Sites die bei den Beispielen dabei waren funktiert auch. Bei mir ist wahrscheilich der Datenbankzugriff das Problem !

Hier mein Source Code:

<html>

<body>

<%@ page import = "java.sql.*" isThreadSafe="false" %>

<%

String sDbDrv = "org.gjt.mm.mysql.Driver";

String sDbUrl = "jdbc:mysql://localhost:3306/test";

String sUsr = "";

String sPwd = "";

String sTable = "TestTabelle";

String sSql = "";

if( request.getParameterNames().hasMoreElements() == true )

{

sDbDrv = request.getParameter( "prmDbDrv" );

sDbUrl = request.getParameter( "prmDbUrl" );

sUsr = request.getParameter( "prmUsr" );

sPwd = request.getParameter( "prmPwd" );

sTable = request.getParameter( "prmTab" );

sSql = request.getParameter( "prmSql" );

if( null != sTable && 0 < sTable.length() &&

(null == sSql || 0 == sSql.length()) )

sSql = "SELECT * FROM " + sTable;

}

%>

<form method="post"><pre>

Db-Treiber <input type="text" name="prmDbDrv" value='<%= sDbDrv %>' size=60><br>

Db-URL <input type="text" name="prmDbUrl" value='<%= sDbUrl %>' size=60><br>

Benutzer <input type="text" name="prmUsr" value='<%= sUsr %>' size=60><br>

Kennwort <input type="password" name="prmPwd" value='<%= sPwd %>' size=60><br>

Tabellenname <input type="text" name="prmTab" value='<%= sTable %>' size=60><br>

SQL-Kommando <input type="text" name="prmSql" value='<%= sSql %>' size=60>

(nach Änderung anderer Parameter muss SQL-Kommando gelöscht werden)<br>

<input type="submit" name="submit" value="Datenbanktabelle anzeigen">

</pre></form>

<%

if( request.getParameterNames().hasMoreElements() == true

&& null != sDbDrv && 0 < sDbDrv.length()

&& null != sDbUrl && 0 < sDbUrl.length()

&& null != sSql && 0 < sSql.length() )

{

Class.forName( sDbDrv );

Connection cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );

java.sql.Statement st = cn.createStatement();

ResultSet rs = st.executeQuery( sSql );

ResultSetMetaData rsmd = rs.getMetaData();

int n = rsmd.getColumnCount();

out.println( "<table border=1 cellspacing=0><tr>" );

for( int i=1; i<=n; i++ ) // Achtung: erste Spalte mit 1 statt 0

out.println( "<th>" + rsmd.getColumnName( i ) + "</th>" );

while( rs.next() )

{

out.println( "</tr><tr>" );

for( int i=1; i<=n; i++ ) // Achtung: erste Spalte mit 1 statt 0

out.println( "<td>" + rs.getString( i ) + "</td>" );

}

out.println( "</tr></table>" );

rs.close();

st.close();

cn.close();

}

%>

</body>

</html>

Vielleicht habt Ihr eine Idee an was das liegen kann ?

Ich komm einfach nicht mehr weiter. Schon im voraus vielen Dank für eure Hilfe !!!

P.S: Sorry für das lange Posting !

  • 7 Monate später...

Hi!

Ich sitze hier gerade und bekomme beim gleichen Problem auch diesen Fehler.

Schade das noch keiner ne Lösung für das Problem hat.

Gruß

SteverBo

Hallo,

was heisst gleiches Problem?

Hast du das fehlerhafte Skript einfach kopiert?

Poste doch mal deinen Code.

Datenbankabfragen in JSPs halte ich für problematisch.

JSPs sollte man imho nur für die Darstellung benutzen. Die Logik und Persistence würde ich in Servlets, Beans oder EJB kapseln.

Gruß Jaraz

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.