PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MDW MX und Oracle Connection


alexej
30.07.2002, 17:25
Hallo!

bin anfänger in jsp, deswegen frage nur simple sachen.

Vor kurzem habe ich gesehn, dass Macromedia DreamweaverMX kann die JSP ab. Hab mir mal 'ne test-version besorgt und versuche damit einen Oracle8i-Connection aufzubauen.
Als Webserver läuft Tomcat4.05.
Also ich erstelle Connection Oracle Thin Driver:

Driver - oracle.jdbc.driver.OracleDriver
URL - jdbc:0racle:thin:@[hostname]:[port]:[sid] // daten sind korrekt
User - XXXX
PWD - XXXX
DWConn - Test Server

Dannach versuche ich Connection zu testen und bekomme folgendes fehler : oracle.jdbc.driver.OracleDriver Class not found

Die JSDK habe ich schon neu installiert und Tomcat auch ..

Hat jemand einen Tipp für mich? Ich möchte schon ganz gerne DW zwingen JDBC zu benutzen ;) und Connection ohne Jbeans zusatnde bringen.

Danke iV

AJ


MrEasy
30.07.2002, 19:19
vielleicht kannst du die 2 zeilen code posten, wie du auf die klasse zugreifst!?

bei Tomcat sollten die klassen im WEB-INF/classes verzeichnis liegen

alexej
31.07.2002, 16:36
Hi!

das ist auch das problem MrEasy, Dreamveaver erstellt nur eine datei mit Connection-daten

Inhalt der mxOraConn.jsp:
<%
// FileName="oracle_jdbc_conn.htm"
// Type="JDBC" ""
// DesigntimeType="JDBC"
// HTTP="true"
// Catalog=""
// Schema=""
String MM_mmxOraConn_DRIVER = "oracle.jdbc.driver.OracleDriver";
String MM_mmxOraConn_USERNAME = "XXXX";
String MM_mmxOraConn_PASSWORD = "XXXX";
String MM_mmxOraConn_STRING = "jdbc:oracle:thin:@XXXX:1521:XXXX";
%>

weiter bin ich nicht gekommen, weil es kommt keinen verbindung zustande und DW kann keine weitere aktionen durchführen.
Im Verzeichniss Tomcat\webapps\ROOT\WEB-INF gibts kein subfolder namens classes und auch keine java files.

(p.s. ich glaub ich muss mir iis/asp denkweise abgewöhnen und statt DW zu benutzen, einfach zu fuss versuchen
p.p.s. sorry wegen schreibfehlern)

danke und guesse AJ

MrEasy
01.08.2002, 01:35
tja, es würde mich anhand des code-beispiels auch sehr wundern, wenn du mit der deklaration von 4 Strings eine datenbankverbindung zustande bringen würdest :D

ich würde mal sagen, dir fehlt da was wesentliches ;)

Ryu
01.08.2002, 08:14
ich mag dreamweaver nich *spam*

alexej
13.08.2002, 11:27
moin moin!

ich bin wieder da :p (jetzt ohne Dreamweaver)

nach mehreren versuchen auf Oracle zu kommen bekomme ich gleichen fehler :
Error 500
Internal Servlet Error:
javax.servlet.ServletException: Unable to load class oracle.jdbc.driver.OracleDriver
Root cause:
java.lang.ClassNotFoundException: Unable to load class oracle.jdbc.driver.OracleDriver
:mauer:

Ich habe die oracle-jdbc treiber runtergeladen und in CLASSPATH eingebunden :
CLASSPATH= %JAVA_HOME%\jre\lib\ext\classes12.zip
(JAVA_HOME=C:\jdk1.3.1_01)

folgendes (beispiel)code wird ausgeführt:

<%@ page import = "java.sql.*" isThreadSafe="false" %>
<%
String sDbDrv = "oracle.jdbc.driver.OracleDriver";
String sDbUrl = "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL";
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++ )
out.println( "<th>" + rsmd.getColumnName( i ) + "</th>" );
while( rs.next() )
{
out.println( "</tr><tr>" );
for( int i=1; i<=n; i++ )
out.println( "<td>" + rs.getString( i ) + "</td>" );
}
out.println( "</tr></table>" );
rs.close();
st.close();
cn.close();
}
%>

Sind die Trieber nicht korrekt installiert?

Danke iv
alexej

MrEasy
13.08.2002, 16:18
treiber denk ich mal korrekt wundert mich nur, dass es ein zip und kein jar archiv ist, alternativ kannste auch die klassen in das aktuelle projektverzeichnis entpacken

spontane idee:
statt Class.forName(_sDbDrv_);
benutze
Class.forName(_sDbDrv_).newInstance();

weil forName() liefert nur die klasse zurück aber newInstance() liefert eine Instanz der Klasse

siehe auch: http://java.sun.com/j2se/1.4/docs/api/java/lang/Class.html

alexej
13.08.2002, 16:46
hiho!

Danke sehr MrEasy!
Es funzt nun! :D

die Ora8 treiber zu jdk13 sind verzipt und Ora9 für jdk14 sind als .jar auf oracle.com zu downloaden.

grüße
alexej

alexej
13.08.2002, 17:35
ach ja .. die zipdatein mit klassen sollte man lieber in WEB-INF/classes entpacken da Sevletcontainer nur nach jar's WEB-INF/lib durchsucht ..

cu
aj

pate33
03.09.2002, 13:53
Hi,

was genau muss ich denn nun runterladen, wenn ich auf ne 8.1.7 datenbank per jsp zugreifen will??

find da nix bei oracle. :(

thanks