Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
mein Problem ist das wenn ich ein applet über ein html-Button bzw einem link ausführen möchte, ich die exception: java.awt.AWTPermission(showWindowWithoutWarningBanner). lege ich ein Button schon im Applet an, ist das ganze kein problem und mein signiertes Applet darf ausgeführt werden.
Ok das kristalisiert sich wirklich nicht ganz klar.
Mein Problem ist, dass ich eine Funktion einer OpenSource Applikation erweitern möchte. Die gegebene Funktion, welche vorher einen Browserdownload initiiert hat, wollte ich nun durch ein von mir modifiziertes Applet ersetzen. Dabei wollte ich aber bestimmte gegebnheiten bestehen lassen wie z.B. den Butten welcher eine JavaScriptFunktion aufruhft in welcher im grunde auch dann mein Applet aufgerufen wird. Das Problem wie gesagt ist, dass er einen Funktionsaufruhf eines externen Buttons, also ein Button der nicht zum Applet gehört, nicht gestattet wird.
Ich hoffe das ich mein Problem nun genauer spezifizieren konnte und ihr mir ein wenig weiterhelfen könnt.
naja mal so eben anschaun ist schlecht, es handelt sich dabei um die OpenSource version von Alfresco (DMS). Also im grunde muss man das ganze hintergrund wissen nicht kennen denke ich. Ich will ja im grunde nur wissen wie und ob man überhaupt aus einem externen link,Button,etc eine über Javascript-Funktion eine Methode eines Signierten Applets aufruft so das keine AWTPermission ausgeworfen wird.
Hier mal ein mini Beispiel:
Java:
Java:
public class FileOpener extends Applet implements ActionListener{
private static final long serialVersionUID = 9088692722667562263L;
static FileOutputStream fos;
static ProgressMonitorInputStream pmis;
static ProgressMonitor pm;
static InputStream is;
String fileURL = null;
String msg = "Applet geladen!";
public void runDownloadApplet(String fileURL){
this.fileURL = fileURL
try{
fos = new FileOutputStream("C:/TestData/PDFtest.pdf");
msg = fileURL;
repaint();
openConnection(fos);
}catch(Exception e){
msg = e.getMessage();
repaint();
e.printStackTrace();
}
}
public void openConnection() throws IllegalStateException, MalformedURLException,
ProtocolException, IOException {
URL url = new URL(fileURL);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.connect();
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
initProgressMonitor(url, con);
Thread t = new Thread(new Runnable(){
public void run(){
try{
byte tmp_buffer[] = new byte[4096];
downloadFile(pmis, tmp_buffer);
pmis.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
finally{
try{
fos.close();
openFile();
}
catch (Exception e){
e.printStackTrace();
}
}
}
});
t.start();
} else {
msg = String.valueOf(responseCode);
repaint();
throw new IllegalStateException("HTTP response: " + responseCode);
}
}
public void initProgressMonitor(URL url, HttpURLConnection con) throws IOException{
is = con.getInputStream();
pmis = new ProgressMonitorInputStream(null,"Liest " + url.getFile().toString(), is);
pm = pmis.getProgressMonitor();
pm.setMillisToDecideToPopup(0);
pm.setMillisToPopup(0);
pm.setMinimum(0);
pm.setMaximum(con.getContentLength());
}
public void downloadFile(ProgressMonitorInputStream pmis, byte tmp_buffer[]) throws IOException{
int bytes;
msg = "downloading...";
repaint();
while ((bytes = pmis.read(tmp_buffer)) > 0) {
fos.write(tmp_buffer, 0, bytes);
fos.flush();
}
}
public void openFile() throws IOException{
Desktop.getDesktop().open( new File(System.getProperty("user.home") + File.separator + "test.pdf"));
}
public void paint(Graphics g){
g.drawString(msg, 50, 25);
}
}