i've created a java applet last year for a socket connection from a web application to a local running java server. it worked fine.
since the last java updates (7 r21 i guess), i cannot access the methods within javascript anymore. Right now, i reduced the applet to a test applet (without the doPriviligedAction methods) but even this does not work anymore.
The current code is like
import java.applet.*;
public class socketApplet extends Applet {
public void init() {
System.out.println("Applet initialisiert.");
}
public void start() {
System.out.println("Applet gestartet.");
}
public void paint() {
System.out.println("Applet aktualisiert.");
}
public void stop() {
System.out.println("Applet angehalten.");
}
public void destroy() {
System.out.println("Applet beendet.");
}
public String testApplet() {
System.out.println("Applet getestet.");
return "Yep, I'm the Applet.";
}
}
Before the update i could access methods like testApplet() in javascript like this:
document.socketApplet.testApplet();
The applet is self-signed and embedded with an applet html-tag. It is starting (the java console is opening and prints the debug messages defined in the init, start and paint methods) but i cannot access the testApplet() method. The response in Javascript is "undefined" while the applet exists.
after reading a while (a few days now...) about the new security changes, i've added a manifest.txt with the following content:
Main-Class: socketApplet
Permissions: all-permissions
Codebase: *
Trusted-Library: true
No luck with or without the Trusted-Library attribute.
What do i have to do to enable the access with javascript again?
Edit: The implementation:
<applet id="socketApplet" width="100" height="100" archive="../../socketApplet.jar" name="socketApplet" code="socketApplet" scriptable="true">
I am testing with the newest versions of Firefox and Safari on an up to date Mac OS X machine.
Edit2:
i am creating and signing the jar like this

Edit3:
Okay, now my jar worked a few times (not in a row), i got

and in the console

But most of the time it does not work. restarting the browser, clearing caches, nothing works. going to test this on another pc now (again).
Edit4: Okay it is running on a virtual machine with windows xp and java 32bit 7u25 - on my 64bit mac just only 1 out of 30 tries.
scriptable="true"attribute to indicate the applet might be called from Javascript.