Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# problème de privilège

Envoyé par : hysah

Date : 23/09/2008 09:30

Bonjour. Je suis en train de développer une extension qui utilise un ensemble de classes Java. Je m'appuie sur une extension existante http://simile.mit.edu/wiki/Java_Firefox_Extension pour instancier mes objets java et les utiliser dans mes scripts js de mon extension.

Par exemple, dans un script js, on peut créer un objet User de la manière suivante :

var user = foo.wrappedJSObject._packages.getClass("monPackage.User").n(nom, prenom, age);

nom, prenom, et age correspondent aux paramètres attendu par le constructeur de la classe Java User.

L'objet user obtenu peut ensuite etre manipulé comme un objet java dans le script js.

Cependant j'ai un problème :

J'ai une fonction createPerson qui crée un objet comme ci-dessus.

  • Cas 1 : l'objet est créé avec des paramètres internes à la fonction :
JavaFirefoxExtension.createPerson = function() {
  var nom= truc;
  var prenom= machin; 
  var age = hashAlgo = chouette;
  var user = foo.wrappedJSObject._packages.getClass("monPackage.User").n(nom, prenom, age);
}

Ce cas est OK mon objet est bien créé

  • Cas 2 : l'objet est créé avec des paramètres externes à la fonction déduit d'un fichier xml:
JavaFirefoxExtension.createPerson= function(nom, prenom, age) {
   var user = foo.wrappedJSObject._packages.getClass("monPackage.User").n(nom, prenom, age);
}

lors de l'appel à cette fonction mon objet "user" n'est pas instancié, j'obtiens l'erreur java suivante :

java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
       at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
       at sun.plugin.liveconnect.PrivilegedCallMethodAction.run(Unknown Source)
       ... 4 more
Caused by: java.lang.NoSuchMethodError: No constructor is applicable on provided arguments
       at edu.mit.simile.javaFirefoxExtensionUtils.ClassWrapper.callConstructor(ClassWrapper.java:187)
       ... 14 more

Merci de votre aide.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.