Passage de jvm Ms a jvm Sun

cs_hugo123 Messages postés 3 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 24 novembre 2004 - 23 nov. 2004 à 12:03
cs_hugo123 Messages postés 3 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 24 novembre 2004 - 23 nov. 2004 à 16:17
Bonjour,
J'ai une applet qui fonctionne actuellement avec une JVM Microsoft afin d'utiliser les com.ms.security.* Cette applet est appelé par du javascript pour effectuer des traitements.
exemple :
var result = document.demarreur.demarrer(actionUrl,tap3EditExecPath,tap3LocalRepository,FileRealName,FileReal,0);

J'utilise les certificats construits avec makecert (java sdk de microsoft), l'applet fait des suppressions et écriture de fichiers ainsi que des executions d'applications.
exemple :

// Mise en place du type de sécurité
if ( Class.forName("com.ms.security.PolicyEngine") != null)
{
// Autorisation de manipuler des fichiers dur le disque local
com.ms.security.PolicyEngine.assertPermission(com.ms.security.PermissionID.FILEIO);
// Autorisation d'exécuter des programmes dur le disque local
com.ms.security.PolicyEngine.assertPermission(com.ms.security.PermissionID.EXEC);
}

ce bout de code générera une exception au début de ma méthode empêchant celle ci de poursuivre son traitement.

Cependant, microsoft ne distribuant plus sa jvm et comme je dois passer a windows XP il me faut passer en jvm Sun.

J'ai donc cherché comment faire et pour l'instant ca ne marche pas.
J'ai modifié le makefile Ant afin de signer l'applet avec jarsigner.
exemple :

<!-- Generation des certificats -->
<target name="genkey" depends="jar">
<mkdir dir="${cert.out.dir}"/>
<genkey alias="${cert.name}" keypass="${cert.key.pass}" keystore="${cert.key.store}" storepass="${cert.store.pass}">
<dname>




</dname>
</genkey >
</target >

<target name="signjars" depends="exportcert">
<signjar jar= "${jar.dir}/${jar.name}" keystore="${cert.key.store}" signedjar="${jar.dir}/s${jar.name}" alias="${cert.name}" keypass= "${cert.key.pass}" storepass= "${cert.store.pass}"/>
</target>

<target name="exportcert" depends="genkey">
<exec dir= "." executable= "keytool">

</exec>
</target>

J'ai modifié l'appel de l''applet dans l'html en supprimant la référence au .cab et en rajoutant l'appel a l'applet signé
exemple :







/jar">

J'ai modifié le code pour supprimer les fonctions MS et rajouter le systemmanager de l'API java.

Mais j'ai pour l'instant l'erreur javascript suivante :

Cet objet ne gère pas cette propriété ou cette méthode
(sur la ligne d'appel en javascript donné en exemple plus haut).

Or je n'ai pas modifié les appels aux fonctions, les noms etc...

Je remarque aussi qu'avant j'avais un popup me demandant l'autorisation d'executer cette applet et que maintenant je ne l'ai plus.

Quelqu'un aurait des idées ?

1 réponse

cs_hugo123 Messages postés 3 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 24 novembre 2004
23 nov. 2004 à 16:17
Précision, j'ai peut être cerné un peu plus le problème. Dans ma console java j'ai une exception au chargement de l'applet.

ClassFormatError c'est comme s'il ne reconnaissait pas ma classe, une idée du problème ?

java.lang.ClassFormatError: com/sopra/utils/applet/Demarreur (Bad magic number)

at java.lang.ClassLoader.defineClass0(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at java.security.SecureClassLoader.defineClass(Unknown Source)

at sun.applet.AppletClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.applet.AppletClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.applet.AppletClassLoader.loadCode(Unknown Source)

at sun.applet.AppletPanel.createApplet(Unknown Source)

at sun.plugin.AppletViewer.createApplet(Unknown Source)

at sun.applet.AppletPanel.runLoader(Unknown Source)

at sun.applet.AppletPanel.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

java.lang.ClassFormatError: com/sopra/utils/applet/Demarreur (Bad magic number)

at java.lang.ClassLoader.defineClass0(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at java.security.SecureClassLoader.defineClass(Unknown Source)

at sun.applet.AppletClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.applet.AppletClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.applet.AppletClassLoader.loadCode(Unknown Source)

at sun.applet.AppletPanel.createApplet(Unknown Source)

at sun.plugin.AppletViewer.createApplet(Unknown Source)

at sun.applet.AppletPanel.runLoader(Unknown Source)

at sun.applet.AppletPanel.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)
0
Rejoignez-nous