# Applet soll serialisierten Vector von Server lesen



## Guest (13. Mai 2006)

Hi,

ich habe ein Applet, in dem ich mit folgendem Code einen serialisierten Vector lese:


```
void loadLevel(String level) {
        try {
            URL url = new URL("level" + level + ".ser");
            ObjectInputStream objIn = new ObjectInputStream(new BufferedInputStream(url));
            coordinates = (Vector) objIn.readObject( );
            objIn.close();

        } catch (Exception e) { System.out.println("" + e.getMessage()); }
    }
```

klappt lokal auch wunderbar, nur eben im Applet nicht (java.security.AccessControlException: access denied (java.io.FilePermission level1.ser read))! Ich habe schon überall gesucht, immer finde ich nur etwas zum Textdateien auslesen und bekomme das mit dem ser. Objekt nicht hin!


Könnt ihr mir bitte bitte helfen?


----------



## Guest (13. Mai 2006)

sorry, das war der Code nach ewigen hin- und her - testen...hier der Anfangscode, mit dem alles funktionierte:


```
void loadLevel(String level) {
        try {
            ObjectInputStream objIn = new ObjectInputStream(new BufferedInputStream(getClass().getResourceAsStream("level" + level + ".ser")));
            coordinates = (Vector) objIn.readObject( );
            objIn.close();
        } catch (Exception e) { System.out.println("" + e.getMessage()); }
    }
```


----------



## Leroy42 (13. Mai 2006)

SecurityManager hat gesagt.:
			
		

> java.security.AccessControlException: access denied (java.io.*FilePermission level1.ser read*)



Das hat nichts mit Serialisierung zu tun. Unsignierts Applets dürfen aus Sicherheitsgründen 
keine Verbindung zu anderen Servern herstellen, als zu dem von wo aus sie heruntergeladen wurden.

In deinem 2. Beispiel liest du ja direkt aus dem Jar, was erlaubt ist.

Wo liegt denn die Datei "level1.ser" und von wo kommt das Applet?


----------



## Gast (13. Mai 2006)

die level1.ser liegt im selben Ordner wie das Applet, auf demselben Server...deshalb kapier ichs auch nicht!


----------



## Gast (15. Mai 2006)

hat denn keiner ne Antwort?


----------



## Guest (16. Mai 2006)

Hallo. das lesen aus der .ser Datei sollte eingentlich gehen.
variante ohne Serialisierung:
der code holt den url der .ser-Datei, die auf den Server liegt.
offnet einen Stream zu diesen url
liest zeilenweise und gibt das auf den Browser aus
ich hoffe du kannst damit was anfangen.


```
public class Loadfile extends JApplet{
	
	
	InputStream input;
	
	
	public void init()
	{
		setSize(900,500);
		loadLevel();
	}
	
	void loadLevel() { 
        try { 
            
            URL appletUrl = getCodeBase();//die URL des Applets. 
            URL u2 = new URL( appletUrl, "lb1.ser" );//URL der .ser Datei
            input = u2.openStream();
            
            System.out.println("URL: " + u2);
        
         
        } 
        catch(MalformedURLException u)
		{
        	u.printStackTrace();
		}
        catch (IOException e) 
		{
        	e.printStackTrace(); 
		}
    }
	
	public void paint(Graphics g)
	{
		int x=10;
		int y=40;
		BufferedReader d
        = new BufferedReader(new InputStreamReader(input));
      String line;
      g.drawString("inhalt der .ser dsatei",x,y);
      y=y+30;
      try
	  {
      //lesen aud der URL zeilenweise und ausgeben
      while((line = d.readLine()) != null)
      {
      	System.out.println(line);
      	g.drawString(line,x,y);
		y= y+20;
      }
      input.close();
	  }
      catch(IOException io)
	  {
      	io.printStackTrace();
	  }


		
		
	}

	

}
```
den Code habe ich getestet. das funktioniert

youssef


----------

