Aus einem Applet eine Datenbankverbindung starten?

Status
Nicht offen für weitere Antworten.
M

mc_maki

Gast
Hallo,

ich habe ein Prog, dass aus einer Datenbank einträge liest und diese ausgibt.
wenn ich die jar datei starte dann funktioniert alles wunderbar.
ich möchte es aber nun über ein applet starten lassen.
wenn ich aus dem applet starte kommt aber beim versuch des verbindungsaufbaus immer ein fehler bzw. es fliegt eine exception die ich abfange.

mittels ex.getMessage() zeigt er folgendes an : com.mysql.jdbc.Driver

das ist der treiber denich verwende

gibt es da komplikationen beim treiber?
 
M

mc_maki

Gast
das komische ist ja. wenn ich das applet über netbeans starte.
also rechte maustaste run - dann funktioniert es. er kann eine verbindung öffnen, weil die exception nicht fliegt.

aber wenn ich die datei nutze, die netbeans mir erstellt (html-datei), dann funktioniert das nicht mehr!
dann kommt der fehler.
 

tfa

Top Contributor
Du solltest auch schreiben, welche Exception fliegt.
Ich nehme an, der JDBC-Treiber ist nicht im Klassenpfad und wird deswegen nicht gefunden.
 

FArt

Top Contributor
.. und sobald der Treiber im Klassenpfad ist, wirst du feststellen, dass DB Zugriffe aus einem Applet suboptimal sind...
 
M

mc_maki

Gast
und was soll ich eure meinung nach tun?
das programm braucht einen datenbankzugriff und muss aus dem browser heraus gestartet werden.
 

L-ectron-X

Gesperrter Benutzer
FArt hat gesagt.:
...dass DB Zugriffe aus einem Applet suboptimal sind...
Das stimmt, es wäre sicherer, eine Middleware dazwischen zu schalten, bspw. einen RMI-Server.

Eigentlich könnten nur 2 Exceptions nach deiner Beschreibung in Frage kommen - AccessControlException oder ClassNotFoundException. Um dir zu helfen brauchen wir die komplette Fehlermeldung.
 

tfa

Top Contributor
Das Applet sollte sich mit einem (Application-)Server verbinden, der die Daten liefert, also aus der DB liest. Stichwort 3-Schicht-Anwendung.
 

The_S

Top Contributor
Dann verwende J2EE! Ein Applet ist Client-seitig. D. h. dass dein Byte-Code zum User transferiert und dort ausgeführt wird. Dadurch hat der User auch ohne Probleme die Möglichkeit dein Programm zu dekompilieren und so den User und das Passwort für deine DB auszulesen und damit jede Menge unsinn zu treiben.
 
M

mc_maki

Gast
was wäre so ein applikationserver?
was muss ich da nehmen? gibt es opensource?
wie installieren?

da bin ich echt überfragt, denncoh habt ihr mich überzeugt, dass es wohl so nicht gehen kann.

wäre fatal wenn jeder die db auslesen kann wie er will weil er das pw hat.
 

tfa

Top Contributor
Als Server kannst du ein ganz normales Java-Programm verwenden und per Sockets oder RMI kommunizieren. Das wäre für den Anfang am einfachsten. Frei verfügbare Server (wie Tomcat, JBoss) gibt es auch, in denen man seine Appliktionen laufen lassen kann.
Sieh dir auch mal das Spring-Framework (besonders Remoting). Das nimmt einem viel Arbeit ab.
 

FArt

Top Contributor
Ein App-Server ist evtl. mit Kanonen auf Spatzen geschossen. Es kommen auch leichtgewichtigere Lösungen in Frage, z.B. JSPs, Servlets, evtl. einfach eine RPC Schnittstelle, vielelicht mit RMI, Hession, Burlap, SIMON, ...
Wichtig: ein Applet kann ohne weiteres nur auf den Server zugreifen, von dem es geladen wurde!
 
M

mc_maki

Gast
ich habe probleme das ganze zu greifen.
muss ich nun eine java-klasse bauen, die dann auf meinem Server läuft, die auf die DB zugreift?
und dann mittels xmlrpc oder so was soll das applet dann mit der klasse kommunizierne bzw. von der klasse die daten aus der dB bekommen?
 
M

mc_maki

Gast
ist es nicht möglich und auch sicherer wenn das applet einfach eine jar-datei vom server ausführt?

geht das?
 

The_S

Top Contributor
zu post 1: ja, oder eben gleich anstelle eines applets servlets und jsps verwenden.

zu post 2: auch das jar auf deinem Server kann der User runterladen und dekompilieren.
 

L-ectron-X

Gesperrter Benutzer
mc_maki hat gesagt.:
classnotfound exception!
Wie hast du das Applet und den Treiber in der HTML-Datei eingebunden?

Du brauchst eine Schicht zwischen Applet (Client) und Webserver, damit Zugangsdaten nicht in irgendeiner Weise in die Hände eines Böswilligen gelangen können.
Es wurden oben die meist benutzen Varianten genannt, die allerdings auch Vor- und Nachteile haben.
Wenn du das Ganze mit JSP/Servlets löst, bist du auf dem Client von Java/Applets etc. unabhängig. Der Applicationserver bspw. Tomcat generiert aus den JSPs Webseiten, die er dann zum Browser auf dem Client schickt.
Dazu brauchst du aber einen Webspace-Betreiber oder einen eigenen Server, der JSP/Tomcat etc. unterstützt.

Wenn du das Ganze mit RMI oder SIMON lösen möchtest, brauchst du auch einen Rechner, der mit dem Internet verbunden ist und auf Verbindungswünsche deines Applets wartet. Dieser RMI- oder SIMON-Server kann die Zugangsdaten zur Datenbank kennen und leitet, oder generiert selbst, Anfragen an die Datenbank weiter und empfängt die Ergebnisse der Anfrage und schickt sie zurück zum Applet. Dabei kann sich das Applet nur auf die Anzeige einer Benutzeroberfläche beschränken. Treiber-Dateien (Jar) braucht es nicht zu kennen und einzubinden. Das kann der RMI-Server erledigen.
 

p316266

Mitglied
ich hab mich nun mal angemeldet!
es ist folgendermaßen.
ich bin praktikant und soll eine weblösung programmieren, die daten aus einer db liest und diese dann in tabellenform aufbereitet.

ich kann java ziemlich gut, deswegen habe ich mich für diese sprache entschieden.

die db liegt auf einem linux server. auf diesem versuche ich gerade java und jboss zu installieren.

bin ich da auf einem richtigen weg?
das ist alles neuland für mich, aber auch interessant und nur so lernt man doch was.
 
M

maki

Gast
>> bin ich da auf einem richtigen weg?

Wohin?

Zum Mount Everest? Dann ja. :)

Ist 'ne steile Lernkurve, aber als Praktikant soltest du ja keinen Zeitdruck haben.
 

p316266

Mitglied
das lustige ist, das programm als jar datei hab ich schon fertig.
nur leider soll es ja vom browser aufgerufen werden können.
 
M

maki

Gast
>> das lustige ist, das programm als jar datei hab ich schon fertig.

Ist Sicherheit denn wichtig?
Nicht dass deine App nur von ITlern benutzt wird die allesamt das DB Passwort wissen...
 

p316266

Mitglied
hehe....ja da hast du eigentlich recht!
es wird nur von ITlern benutzt!

kann ich es dann doch mit einem applet machen?
beiße mit dem servelt und middleware .... so interessant das auch ist und ich das gerne so machen würde ... ohne fremde hilfe irgendwie auf granit!
 

p316266

Mitglied
dann bleibt aber immer noch das problem, dass die html datei, die netbeans erstellt nicht auf den mysql treiber zugreifen kann.


netbeans legt die datei unter build an, aber der treiber bzw. die klassen in der jar datei für die dbconn sind unter dist in lib
 

p316266

Mitglied
jetzt habe ich gemäß deiner anleitung die jar datei direkt angezapft.
<applet archive="MeinJar.jar" code="MeinApplet.class" width="400" height="300">
</applet>
jetzt kommt ein anderer fehler.
ich poste ihn mal hierein!
Code:
communications link failure
last package sent to server  was 0ms ago.


kann ich in nem applet eigentlich irgendwie die console und damit die abgefangene exception anzeigen lassen?

bzw. welcher befehl in java lässt mir mittels new JOptionPane().showMessageDialog(""); die komplette exception anzeigen?

ex.getMessage() zeigt ja nur das was ich oben schon geschrieben habe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Mongodb Daten in einem bestimmten Document speichern Datenbankprogrammierung 1
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
Dimax Hadoop : 2 SimpleNode cluster (eins mit windows und der andere mit opensuse) zu einem zusammenfügen. Datenbankprogrammierung 15
L SQLite Ändern der Daten in einem UNIQUE Feld Datenbankprogrammierung 1
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
S Abfrage von Gruppentickets(Mehrere Resorts an einem Tag) Datenbankprogrammierung 1
J SQL SELECT mit einem Array Datenbankprogrammierung 1
D Komplette Zeile lesen und einem Konstruktor übergeben. Datenbankprogrammierung 3
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
A Postgres, sql: Inkrementierung allgemein und bis zu einem bestimmten Wert Datenbankprogrammierung 5
Mrtwomoon Abfrage-Ergebnisse in einem Fenster darstellen Datenbankprogrammierung 8
R Derby/JavaDB Möglichkeit von einem Random Select! Datenbankprogrammierung 6
D Geschachtelte Transaktionen in einem DBMS Datenbankprogrammierung 3
C Datenbankanbindung mit einem JButton Datenbankprogrammierung 12
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
H Select in einem Select Datenbankprogrammierung 7
Z derby abfrage von einem Timestamp Datenbankprogrammierung 2
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
H Daten aus einem DBS in ein zweites DBS überführen ? Datenbankprogrammierung 2
Y Hibernate - Hbm Files in einem separaten JAR - wie zugreifen Datenbankprogrammierung 6
V Datenbankabfrage in einem Textfeld ausgeben Datenbankprogrammierung 3
D kurze Frage zu einem Query Datenbankprogrammierung 6
G Suchen von Zahlen in einem Textfeld / SQL Server Datenbankprogrammierung 1
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
P [Hibernate] Mehrere Keys in einem <set> Datenbankprogrammierung 11
L DB Felder in einem Array speichern und wieder auslesen Datenbankprogrammierung 11
N Funktion um einen Wert in einem ResultSet zu finden ? Datenbankprogrammierung 5
L mehrere Abfragen mit einem Statement!? Datenbankprogrammierung 5
D brauche mal kurz hilfe bei einem select-stmt Datenbankprogrammierung 6
K Problem beim Einlesen von Werten aus einem Textfeld Datenbankprogrammierung 11
T Aus einem Array in Datenbank einlesen? Datenbankprogrammierung 3
D MySQL Applet MYSQL Abfragen Sicherheit Datenbankprogrammierung 2
S Applet stucks at SQL Connection (jTDS JDBC) Datenbankprogrammierung 15
D Oracle SQL Ergebnis anzeigen und Applet Fehlermeldung Datenbankprogrammierung 12
D Datenbank Applet Datenbankprogrammierung 4
I Java (J)Applet und und RMI (momentan eher RMI) Datenbankprogrammierung 6
S Datenbankabfrage mit Applet Datenbankprogrammierung 13
G Applet und MsAccess Datenbankprogrammierung 2
S Problem mit JDBC und Applet Datenbankprogrammierung 3
T APPLET MYSQL JDBC zum 1001mal Datenbankprogrammierung 6
A Java-Applet -> MySQL Datenbank Datenbankprogrammierung 7
S Applet und Verbindung zur DB Datenbankprogrammierung 8
N Hilfe ! Mein Applet bekommt ein Access-Denied von MySQL Datenbankprogrammierung 7
M Sicherheit bei Applet auf MySQL Datenbank Datenbankprogrammierung 4
A MySQL+Webserver --(Java-Applet)----> Client Datenbankprogrammierung 11
G Access Zugriff, DB auf Server, Applet Datenbankprogrammierung 4
A Datenbankzugriff per Applet - Problem beim Treiber laden Datenbankprogrammierung 6
P Datenbankabfrage MYSQL aus Applet heraus Datenbankprogrammierung 6
T Applet bekommt keinen Datenbankzugriff Datenbankprogrammierung 11
T Datenbankzugriff (Oracle) mit Applet via Internet? Datenbankprogrammierung 6
S Datenbankanbindung + HTML + Applet Datenbankprogrammierung 7
D Applet + MySQL Datenbankprogrammierung 9
L Problem DBVerbindung ausserhalb des Editors:z.B Applet,MSDOS Datenbankprogrammierung 4
M Mit Java Applet via HDBC auf MySQL DB zugreifen? Datenbankprogrammierung 2
S Datenbanktest ergibt graues Fenster bei Applet Datenbankprogrammierung 5
L Zugriff von Applet auf mysql-DB Datenbankprogrammierung 2
F Problem mit MySQL-Datenbank und Java-Applet Datenbankprogrammierung 2
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
T Spring MongoDB: Prüfen ob bereits eine Email existiert Datenbankprogrammierung 15
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Probleme bei Überführung von SQL-Code in eine HQL-Abfrage Datenbankprogrammierung 3
Zrebna Wie mittels PL/SQL eine Datenbankverbindung blockieren? Datenbankprogrammierung 6
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Kirby.exe Eine Tabelle updaten Datenbankprogrammierung 16
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
Z Aus zwei bestehenden Table eine zusätzliche Gemeinsame machen (JavaFX) Datenbankprogrammierung 21
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
F Create Table - Habe ich eine schwache Entität erzeugt ? Datenbankprogrammierung 4
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10
B MySQL Eine Art Sverweis Datenbankprogrammierung 27
O HSQLDB Eine Entität, mehrere Tabellen Datenbankprogrammierung 8
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
L0MiN Wie kann ich eine bestimmte Seite aus verschiedenen Excel-Tabellen in eine neue Exceldatei kopieren? Datenbankprogrammierung 1
N Wie in Java Zugriffe und Updates auf eine Datenbank regeln ? Datenbankprogrammierung 1
E Wie kann ich aus diesem XML eine XMLTABLE-Funktion bauen? Datenbankprogrammierung 3
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
M Warum ist es suboptimal viele Indexe auf eine Datenbanktabelle zu setzen? Datenbankprogrammierung 4
L Datenmodell erstellen für eine Nutzertanalyse Datenbankprogrammierung 1
serjoscha MySQL Eine Instanz von eigenem DBWrapper -> Fehler durch mehrfachbenutzung möglich? Datenbankprogrammierung 2
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
H Grosse Menge an Daten in eine Datenbank Datenbankprogrammierung 32

Ähnliche Java Themen

Neue Themen


Oben