# JApplet in Tomcat-Umgebung funktioniert mal wieder nicht ...



## Fabian030 (18. Jan 2010)

applet.html-seite:
<APPLET codebase="D:\Studium\Semester 3\workspaceNB\Projekt_v3\build\web\WEB-INF\classes\util\MeinCanvas.class" width="500" height="500">
        Test-App
</APPLET>

mit code="MeinCanvas.class" hat er mir ständig gesagt, dass er die klasse nicht finden konnte. zumindest das scheint behoben.

allerdings scheint er gar nicht erst das applet aufzurufen, denn einige sysos zur kontrolle erscheinen nicht auf der konsole und das applet-fenster auf der applet.html bleibt leer.

applet:

```
public abstract class MeinCanvas extends Applet {
...
public MeinCanvas(int breite,int hoehe) {
...
}

public void init() {
            System.out.println("init im meincanvas");
}

public void paint(Graphics g) {
...
}
}
```


ich hab mir die FAQs angeschaut, durchs forum gesucht ... und wurde trotzdem nicht wirklich schlauer. :/
jemand ne idee?


----------



## L-ectron-X (19. Jan 2010)

Ich glaube, das mit den Backslahes in der Codebase ist Mist. Wo liegt denn die HTML-Datei? Hast du sonst irgendwelche Fehlermeldungen auf der Konsole?
Und warum ist deine Klasse abstract? Man kann von abstrakten Klassen keine Instanz erzeugen...


----------



## Fabian030 (19. Jan 2010)

ich hatte fehlermeldung, als ich sowas wie
code="MeinCanvas.class" genutzt hatte. logisch ... konnte er ja nicht finden und mit nem absoluten pfad arbeitet <code> wohl nicht. problem ist: die verzeichnisstruktur kann ich nicht so einfach auflösen, da es sich um ein größeres projekt handelt - ergo kann ich nicht einfach das applet ins web-verzechnis legen, netbeans stellt sich da eh quer und so kann man im web-verzeichnis keine klassen anlegen.

abstract ... stimmt. ich hatte das mal anders genutzt in ner swing-anwendung (die jetzt als web-anwendung umgebaut werden soll), da gibt's noch ne klasse GraphenCanvas.class, die meine MeinCanvas extended. selbst wenn ich die versuche als applet einzubinden, kommt genau das gleiche bei raus. ein leeres applet-fenster.

applets funktionieren im allgemeinen im browser und finden tut er die klasse wohl auch, sonst würde er ja wie vorher beim code="bla"-schnipsel anfangen in der konsole zu meckern, dass er die klasse nicht findet ...


----------



## L-ectron-X (20. Jan 2010)

Leider ist aus deinem Post wenig zu entnehmen, das eine Lösung des Problem vorantreiben könnte.
Ich fragte die Fragen oben nicht umsonst...

Und wo liegt eigentlich deine HTML-Datei? Sieht so aus, als würde sie auf einem anderen Laufwerk oder einem ganz anderen Pfad liegen.

Hast du mal Slashes probiert?


----------



## Fabian030 (20. Jan 2010)

slashes wären mal eine idee

netbeans baut die projekte so auf:
<projektverzeichnis>\build\web --> webseiten (html/JSP)
<projektverzeichnis>\build\web\WEB-INF\classes\<package names> --> packeges mit den .class-dateien

die MeinCanvas.class bzw GraphenCanvas.class liegen also in:
<projektverzeichnis>\build\web\WEB-INF\classes\util

die konsole spuckt in dem fall mit codebase keine fehlermeldungen aus, es geht nicht mal eine auf im browser.
nur wenn ich code nutze und sowas angebe wie: util.GraphenCanvas.class bzw GraphenCanvas.class
dann kann man in den applet-bereich im browser klicken und bekommt die konsole mit dem hinweis, dass die bla.class nich gefunden wurde.
die konsole in netbeans gibt keinerlei fehler aus, in beiden fällen.

abstract is die klasse, weil ich von MeinCanvas die GraphenCanvas erben lasse, um von der eine instanz zu bauen. war in der swing-anwendung ganz praktisch ... aus irgendwelchen gründen die mir inzwischen entfallen sind. ^^
aber im prinzip ist es egal. selbst wenn ich die instanzierbare GraphenCanvas.class nutze, passiert nix.

edit: Slashes wie Backslashes in der codebase ... haben den gleichen effekt: nichts passiert.


----------



## Fabian030 (21. Jan 2010)

wenn ich
<APPLET code="util.MeinCanvas width="500" height="500">
        Test-App
</APPLET>
direkt aus dem verzeichnis <classes>, in dem das verzeichnis <util> liegt, aufrufe, startet er das applet.
wenn ich allerdings einen link von einer html-seite im root <Projekt_v4> dort hin setze, sagt er: ressource not available
aufrufen tu ich das projekt nach start des tomcats mit:
http://localhost:8080/Projekt_v4/WEB-INF/classes/util
wobei das Projekt_v4 verzeichnis im webapps-verzeichnis vom tomcat liegt.

versuche ich irgendwelche pfadangaben in einer html die im root liegt auf die entsprechende util.MeinCanvas zu setzen, findet er die entsprechende klasse nie
egal ob mit <codebase> als relative oder absolute pfadangabe.

wobei es mit einer absoluten pfadangabe klappte, in einer JSP im root ein <%@ include file ="WEB-INF/classes/util/index.html" %> funktionierte. ^^


hat irgendjemand ne idee, wie ich das applet MeinCanvas.class im util-verzeichnis aufrufen kann? :/


----------



## L-ectron-X (21. Jan 2010)

Ohje, Servlets. Nicht meine Baustelle, da muss ich passen.
Was meinst du, würde es dir helfen, wenn ich das Thema verschiebe nach Web Tier?


----------



## Fabian030 (21. Jan 2010)

könnte vielleicht helfen.


----------



## L-ectron-X (22. Jan 2010)

Thema verschoben, Titel präzisiert.


----------

