problem mit internetverbindung bei applet
Moritz
- java
0 Beate Mielke0 Marko
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);
}
}
}
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
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