This discussion is archived
1 Reply Latest reply: May 11, 2010 4:40 PM by baftos RSS

JavaScript call to signed applet exception

843811 Newbie
Currently Being Moderated
Hallo,
I have this method in a signed applet:
public void calledByJS() throws IOException
     {
          int arrlen = 10000;
          final byte[] infile = new byte[arrlen];
          Frame parent = new Frame();
          final FileDialog fd = new FileDialog(parent, "Please choose a file:",
              FileDialog.LOAD);
          fd.show();
          String selectedItem = fd.getFile();
          if (selectedItem == null)
          {
               // no file selected
          } 
          else
          {
               final File ffile = new File( fd.getDirectory()+fd.getFile());
               System.out.println("reading file " + fd.getDirectory()+fd.getFile() );          
               try
               {               
                    AccessController.doPrivileged(new PrivilegedExceptionAction()
                    {                    
                         public Object run() throws IOException
                         {
                              System.out.println("test");
                              try 
                              {
                                   FileInputStream fis = new FileInputStream(ffile);
                                   return null;
                              }
                              catch (FileNotFoundException fnf)
                              {
                                   System.out.println("File not found...");
                                   fnf.printStackTrace();
                                   return null;
                              }
                         }
                    });
               }
               catch (java.security.PrivilegedActionException e)
               {
                    System.out.println(e);
                    throw (IOException) e.getException();
               };                                                  
          }
     }
If I call this by applet itsself, I works great. But if I want to call this function by JavaScript I get this exception in IE and Firefox (Windows 7 ) :

uncaught exception: java.lang.reflect.InvocationTargetException

In Java concole is nothing, so what did I false?

Java Plug-in 1.6.0_16
Verwendung der JRE-Version 1.6.0_20-b02 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\Users\mop
----------------------------------------------------
c: Konsole löschen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------


security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws
security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws,com.sun.deploy
security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws,com.sun.deploy
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.definition value null
security: property package.definition new value com.sun.javaws
security: property package.definition value com.sun.javaws
security: property package.definition new value com.sun.javaws,com.sun.deploy
security: property package.definition value com.sun.javaws,com.sun.deploy
security: property package.definition new value com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
security: property package.definition value com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.definition new value com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
basic: Fortschritts-Listener hinzugefügt: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1f9dc36
network: Cache-Eintrag nicht gefunden [url: file:/C:/Users/mop/Desktop/Neuer%20Ordner%20(2)/MeinJar.jar, Version: null]
security: Zugriff auf Schlüssel und Zertifikat im Mozilla-Benutzerprofil: null
security: Zertifizierungsstellen-Stammzertifikate werden geladen aus C:\Program Files\Java\jre6\lib\security\cacerts
security: Zertifizierungsstellen-Stammzertifikate wurden geladen aus C:\Program Files\Java\jre6\lib\security\cacerts
security: Bereitstellungszertifikate werden geladen aus C:\Users\mop\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs
security: Bereitstellungszertifikate wurden geladen aus C:\Users\mop\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs
security: Zertifikate werden aus Bereitstellungssitzungs-Zertifikatspeicher geladen
security: Zertifikate wurden aus Bereitstellungssitzungs-Zertifikatspeicher geladen
security: Zertifikatskette mithilfe von CertPath-API prüfen
security: Zertifikatssammlung aus ZA-Stamm-Zertifikatsspeicher abrufen
security: Zertifikatssammlung aus ZA-Stamm-Zertifikatsspeicher abrufen
security: Keine Zeitstempelinformationen verfügbar
security: Zuständigkeitslistendatei gefunden
security: Keine Überprüfung auf vertrauenswürdige Erweiterung für dieses Zertifikat erforderlich
security: CRL-Unterstützung ist deaktiviert.
security: OCSP-Unterstützung ist deaktiviert.
security: Prüfen, ob Zertifikat im Zertifikatsspeicher Deployment denied ist
security: Zertifikat wird im permanenten Bereitstellungszertifikatspeicher gesucht
security: Zertifikat wird in Bereitstellungssitzungs-Zertifikatspeicher gesucht
security: Berechtigungen für den Code wurden vom Benutzer nur für diese Sitzung gewährt
security: Zertifikat wird Bereitstellungssitzungs-Zertifikatspeicher hinzugefügt
security: Zertifikat wurde Bereitstellungssitzungs-Zertifikatspeicher hinzugefügt
security: Zertifikate werden in Bereitstellungssitzungs-Zertifikatspeicher gespeichert
security: Zertifikate wurden in Bereitstellungssitzungs-Zertifikatspeicher gespeichert
basic: Applet geladen
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 218218 us, pluginInit dt 2405518 us, TotalTime: 2623736 us
basic: Applet initialized
basic: Fortschritts-Listener entfernt: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1f9dc36
basic: Applet made visible
basic: Starting applet
basic: completed perf rollup
basic: Applet started
basic: Told clients applet is started
reading file C:\Users\mop\Desktop\Mp3s\Stefanie_Heinzmann__-TheUnforgiven.mp3


And this is how I call the applet in HTML page:
<html>
<script type="text/javascript"> 
 function callJava()
     {
var jo =           document.getElementById('test');
jo.calledByJS();

     }
function callJS(byteArray)
{
alert(byteArray.length);
}
</script> 
<body bgcolor="#dddddd">
<applet id="test" code="localfile.class" archive="MeinJar.jar" width="100" height="100" MAYSCRIPT>


</applet>
<button name="Klickmich" type="button"
      value="Überraschung" onclick="callJava();">

    </button>
</body>
</html>
Edited by: mrmiagi0101 on Apr 24, 2010 10:17 AM