Moritz: problem mit internetverbindung bei applet

hallo!
das folgende applet soll eine verbindung zum server herstellen.
und das cgi-script write.pl aufrufen
aber ich bekomme folgende fehlermeldung:
java.security.AccessControlException: access denied(java.net.SocketPermission www.phornet.de resolve)

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.applet.Applet;
import java.util.*;
import java.net.*;
import java.io.*;

public class write extends Applet implements ActionListener
{

TextField value = new TextField(4);
public void init()
  {
   //TextField value = new TextField(4);
   add(value);
   value.addActionListener(this);
  }
public void actionPerformed(ActionEvent event)
{
   if (event.getSource()==value)
    
      try {
     // schicke die Daten an ein CGI-Skript auf dem Webserver    
     // Hier steht Ihr Web-Server
     //String webServer = "www.Mein-Web-Server.de";
            String webServer = "www.phornet.de";
    
     // Der relative Pfad zum CGI-Skript auf Ihrem Webserver
     String cgiScript = "/cgi-bin/write.pl";

// Fuer Informationen zur CGI-Spezifikation:
     //        http://www.w3.org/pub/WWW/CGI/

// Baue das String-Argument
     String dataString = "sfddg1";
     /*for (Enumeration elems = take.elements();
   elems.hasMoreElements(); ) {
  dataString += elems.nextElement();
  dataString += "&"; // Trennzeichen
     }*/
      //dataString += (total + "&");
//    dataString += ("wert=");
    dataString += value.toString();
    
     Socket sock = new Socket(webServer, 80);
     DataOutputStream outStream =
  new DataOutputStream(sock.getOutputStream());
     // Sende Header
   outStream.writeBytes("POST " + cgiScript + "\n" +
    "Content-type: plain/text\n");
//             outStream.writeBytes("POST" + cgiScript + "\n" +
    //"Content-type: plain/text\n");
     // Teile dem Server mit, wieviele Daten er zu erwarten hat
  outStream.writeBytes("Content-length: " +
     dataString.length() + "\n\n");
     // Sende die Daten
    outStream.writeBytes(dataString);
   }
      
catch (Exception exception)
        {
     System.out.println(exception);
}
  }
}

  1. Hallo Moritz,

    das folgende applet soll eine verbindung zum server herstellen.
    und das cgi-script write.pl aufrufen
    aber ich bekomme folgende fehlermeldung:
    java.security.AccessControlException: access denied(java.net.SocketPermission www.phornet.de resolve)

    ein Applet kann nur mit dem Server kommunizieren, von dem aus es gestartet wurde.
    Soll heißen, HTML-Seite mit Applet muß sich auf dem gleichen Server befinden wie write.pl.
    Wenn Du Dich nicht daran hältst gibt's diesen Security-Error.
    Das passiert auch, wenn Du in Verbindung mit Virtual Hosts Alias-Namen vergeben hast.

    Gruß

    Beate Mielke

    1. Hallo Moritz,

      Soll heißen, HTML-Seite mit Applet muß sich auf dem gleichen Server befinden wie write.pl.

      aus diesem Grund macht es eigentlich sinn, den Servernamen über die Methodedn des Applet Objektes herauszufinden (siehe Doku), und nicht fest zu "verdrahten". Die relative URL kann man dann am besten im HTML als Parameter mitgeben.

      Gruss

      Marko