Bonjour,

En lançant une directive signjar par ANT, nous souhaitons signer un ensemble de jars:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<signjar destDir="${deploiement-client.dir}/sign" alias="${keystore.alias}" storepass="${keystore.password}" preservelastmodified="true">
         <path>
            <fileset dir="${ihm.dir}" includes="**/*.jar" />
         </path>
 
         <flattenmapper/>
      </signjar>
Un d'entre-eux pose un problème. Il comporte 442 classes.
A la vérification de celui-ci, par une commande:
jarsigner -verify -verbose monJar.jar

Nous avons cet avertissement:
This jar contains unsigned entries which have not been integrity-checked.
sysTest/gestionSujets/ihm/sujetsAnnuelsV2/intituleSujet/IntituléSujetContenu.class
sysTest/gestionSujets/ihm/sujetsAnnuelsV2/intituleSujet/IntituléSujetControleur.class
sysTest/gestionSujets/ihm/sujetsAnnuelsV2/intituleSujet/IntituléSujetMVC.class
sysTest/gestionSujets/ihm/sujetsAnnuelsV2/intituleSujet/IntituléSujetPanel.class
sysTest/gestionSujets/ihm/sujetsAnnuelsV2/intituleSujet/IntituléSujetValidateur.class


Le contenu de ce jar n'est fait que de classes venues de notre projet, compilées ensemble (en une seule commande javac) et l'archive jar a été faite par une seule directive ANT "jar".

Ce problème empêche par la suite ce jar d'être utilisé par Java Web Start.
Mais surtout, il nous intrigue fortement. Qu'est-ce qui peut empêcher jarsigner, à qui l'on présente des jars, de signer quelques classes (et quelques classes seulement: 5!) qui sont à l'intérieur?

Que signifie "have not been integrity-checked"?
Qu'est-ce qui peut bien se passer? Nous sommes très perplexes.

En vous remerciant de votre assistance,