Jar, Sandbox & Co

Status
Nicht offen für weitere Antworten.

AndyMan

Mitglied
Hi,

Hab folgendes Problem:

Hab eine Application geschrieben (die auch wunderbar läuft) und will diese nun online bringen.

Eine möglichkeit die ich in betracht ziehe:
Applet mit MySql-Anbindung
und Sonstige daten aus einer Jar!

Problem: Verlasse ich die Sandbox, wenn ich eine Kommunikation zu einer MySql-Datenbank auf dem gleichen Server aufbaue, von wo auch das Applet geladen wurde?

Oder:

Applet ohne datenbank
==> Daten werden dann aus Txt dateien geladen, die im Jar ligen

2. Problem:

Ich bekomme da Applet aus dem JAR nich zum laufen:
Es kommt nur die Antwort: Applet not found

Quelltext:
Code:
import java.awt.*;
import javax.swing.*;



public class Test extends JApplet {
 public void paint(Graphics g){
  g.drawString("HELLO WORLD",0,0);

}
die Test.class liegt in der Jar Test.jar

Und ich versuche das Applet mit dem Html-Code aufzurufen
Code:
<html>
<head>
<title>Test-Applet</title>
</head>
<body>
<h1>Test-Applet</h1>
<hr>
<applet code="Test.class" archive="Test.jar" width="300" height="300">
</applet>
<hr>
</body>
</html>
kann mir jemand verraten wie ich das ding zum laufen bringe
 

AndyMan

Mitglied
Danke. Geht jetzt doch. könnte an der VM gelegen haben (weiß ich aber nicht).
nun hab ich den quelltext erweitert und lese mittels RandomAccessFile eine Txt datei aus.
doch dann kommt die Security Exception.
Ok Applet signiert.
Geht.
Nun tritt eine andere Fehler meldung auf.

java.lang.NullPointerException
at java.applet.Applet.getCodeBase(Unknown Source)
at Prototyp_BMIS.<init>(Prototyp_BMIS.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: Ausnahme: java.lang.NullPointerException
java.lang.NullPointerException
at java.applet.Applet.getCodeBase(Unknown Source)
at Prototyp_BMIS.<init>(Prototyp_BMIS.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Eine Idee?
 

AndyMan

Mitglied
FOlgende Fehler meldung:
Und beim JBuilder kommt der Fehler: Applet Prototyp_BMIS besitzt keinen öffentlichen Konstruktor Prototyp_BMIS()

basic: Registrierter Modality-Listener
liveconnect: JS-Methode wird gestartet: document
liveconnect: JS-Methode wird gestartet: URL
basic: ClassLoader wird referenziert: sun.plugin.ClassLoaderInfo@3257b8, refcount=1
basic: Fortschritts-Listener hinzugefügt: sun.plugin.util.GrayBoxPainter@148f8c8
basic: Applet wird geladen...
basic: Applet wird initialisiert...
basic: Applet wird gestartet...
java.lang.NullPointerException
at test.<init>(test.java:28)
at Prototyp_BMIS.init(Prototyp_BMIS.java:190)
at Prototyp_BMIS.<init>(Prototyp_BMIS.java:115)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: Ausnahme: java.lang.NullPointerException
java.lang.NullPointerException
at test.<init>(test.java:28)
at Prototyp_BMIS.init(Prototyp_BMIS.java:190)
at Prototyp_BMIS.<init>(Prototyp_BMIS.java:115)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: Modality-Push durchgeführt
basic: Modality-Pop durchgeführt

der CODE bei Zeile 28:

Code:
    try
    {
       RandomAccessFile in = new RandomAccessFile(this.getClass().getResource("Ausstellerdaten\\Ausstellerdaten.txt").getPath(), "r"); //Zeile 28

Und ich verstehe das nicht. Die Jar ist signiert und hat alle Rechte.
Ideen?
 

L-ectron-X

Gesperrter Benutzer
Die Exceptions haben auch gar nichts mit den Zugriffsrechten des Applets durch eine Signierung zu tun.
Es handelt sich lediglich um eine NullPointerException.
Und in der obigen Codezeile ist genügend Potential für einen solchen Fehler.

In dieser Zeile möchtst du gerne eine Datei namens Ausstellerdaten.txt öffnen, die in einem Verzeichnis Ausstellerdaten steckt, welches wiederum in dem Verzeichnis innerhalb der jar-Datei zu finden sein muss, in dem sich auch dein Applet befindet. Das heißt, es muss auch etwas das sein, was man lesen kann.

Ich müsste das jetzt auch erst ausprobieren. Aber vielleicht tut's schon folgende Zeile:
Code:
File file = new File(getClass().getResource("Ausstellerdaten/Ausstellerdaten.txt").getFile());
RandomAccessFile in = new RandomAccessFile(file, "r");
Es kann gut sein, dass das aber auch schlicht weg nonsens ist.
 

AndyMan

Mitglied
Im appletviewer läuft das ding nun auch
aber sobald ich das ding in einem browser laufenlasse kommt die Exception
kann das grundsätzlich am RandomAccessFile liegen (ich meine mich errinern zu können da etwas gehört zu haben) ?
 

L-ectron-X

Gesperrter Benutzer
Code:
File file = new File(getClass().getResource("Ausstellerdaten/Ausstellerdaten.txt").getFile()); 
if(file != null) {//Referenz auf ein File-Objekt prüfen
   ...
   RandomAccessFile in = new RandomAccessFile(file, "r");
   ...
}
else {
   System.out.println("file ist noch null!");
}
 

AndyMan

Mitglied
wo kann ich das system.out.println() sehen? Im in der konsole von java jedenfalls nicht. Außerdem hab ich dort schon so etwas stehn (in der try catch).
Im appletviewer ist der pfad nicht null!
Allerdings läuft das Applet zu diesem zeitpunkt auch noch nicht aus der jar! (kann das einen fehler verursachen???)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben