# Fehler - Applet notinited in nicht IE 6 Browsers



## Bladepif (19. Jul 2004)

Hallo,

ich habe ein kleines Problem mit einer Klasse. Dies Klasse funktioniert super im IE aber nicht in andere Browser.

Hier die Fehlermeldung:

java.lang.ClassCastException

	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)


Die Klasse ist eine URL fetcher, und soll eine HTML Seite suchen und mir den source zurückgeben.
Klappt auch in IE, aber nicht in Opera, Firefox und Netscape. Habe immer die letze version installiert.
Kann mir jemand sagen was da nicht geht ?

Hier die Klasse:



```
import java.net.URL;
import java.io.*;

public class HTTPFetch
{
  public static void main(String[] args)
  {
  	
  }
  public String getURL(String url)
  {
  	try
  	{
		  URL u = new URL(url);
		DataInputStream dis = new DataInputStream(u.openConnection().getInputStream());
		String input = "";
		String inline = null;
		while ((inline = dis.readLine()) != null)
		{
			input += inline + "\n";
		}
		dis.close();
		return input;
	}
	catch (Exception e) {
		return e.toString();
	}
  }
}
```
[/code]


----------



## L-ectron-X (20. Jul 2004)

Was Du geschrieben hast, ist kein Applet. Ein Applet erbt immer von java.applet.Applet und sollte mindestens die init()-Methode überschreiben.
Applets konnen sich (unsigniert) nur mit dem Rechner verbinden, von dem sie herunter geladen wurden.
Ich habe den Code von Deinem Programm so umgebaut, dass er im Rahmen eines unsignierten Applets funktioniert.

```
import java.applet.Applet;
import java.awt.*;
import java.net.URL;
import java.io.*;

public class HTTPFetch extends Applet {
  private TextArea ta;

  public void init() {
    setLayout(new BorderLayout());
    ta = new TextArea("HTTPFetch\n",0,0,TextArea.SCROLLBARS_VERTICAL_ONLY);
    add(ta, BorderLayout.CENTER);
    String urlParam = getParameter("url");
    if(urlParam == null)
      ta.append("In der HTML-Datei ist der Parameter \"url\" zu setzen!\nBeispiel:\n<param name=url value=\"http://www.mydomain.com/index.html\">");
    else {
      try {
        ta.append("Quelltext von "+urlParam+":\n");
        ta.append("\n"+getURL(urlParam));
      }
      catch(java.security.AccessControlException e) {
        ta.setText("Eine Verbindung zum angegebenen URL ist nicht möglich!\nEs ist nur möglich, eine Verbindung zu dem Rechner herzustellen, von dem dieses Applet geladen wurde!");
      }
    }
  }

  private String getURL(String url) {
    String input = "";
    try {
      URL u = new URL(url);
      DataInputStream dis = new DataInputStream(u.openConnection().getInputStream());
      String inline = null;
      while ((inline = dis.readLine()) != null) {
        input += inline + "\n";
      }
      dis.close();
    }
    catch (IOException e) {
      ta.setText(e.toString());
    }
    return input;
  }
}
```


----------



## bladepif (21. Jul 2004)

Hallo L-ectron-X,

ich habe mal wieder was dazu gelernt und jetzt ist mir auch klar warum es nicht gehen konnte.

ich habe das applet soweit getestet, klappt super gut.

Ich möchte aber jetzt den string den ich zurückbekomme über ein javascript aufrufen und den string dann in ein DIV schreiben.

also applet fetch die URL und schreibt string in ein DIV.
Das soll in unserem intranet laufen und soll den aktuellen status von bestellungen zeigen.

also das javascript sieht so aus:


```
function fetchURL(URLtofetch)
	{
		var strResult = "";
    	strResult = document.urlfetcher.getURL(URLtofetch);
		document.all.divPool.innerHTML=strResult;
		GotoURL=URLtofetch;
	
		setTimeout("fetchURL(GotoURL)", 10000);
	}
```

das Applet bekommt den name 'urlfetcher' und der DIV ist 'divPool'

das javascript klappt soweit, aber wie bekomme ich das Applet dazu mir was zurück zu geben ?

Danke nochmals für deine Hilfe

CU


----------



## L-ectron-X (21. Jul 2004)

Sorry, an dieser Stelle muss ich passen. Ich weiß nicht viel über JavaScript.
Ich weiß auch nicht, ob ein Applet so einfach in eine HTML-Datei schreiben kann. Ich habe es noch nicht versucht. Zumindest ist unsignierten Applets der Zugriff auf Datei- und Verzeichnisebene aus Sicherheitsgründen verboten.
Wenn das Applet doch irgendwie in der HTML-Datei den Inhalt der div-Tags setzen kann, dann würde ich auf jeden Fall versuchen mit Platzhaltern arbeiten, die leicht gefunden und ersetzt werden können.
Mehr kann ich im Moment nicht sagen.

Du solltest mal das Forum mit der Suchfunktion durch stöbern, vielleicht findest Du ja etwas, was in die Richtung geht und Dich einer Lösung näher bringt.


----------

