Question

J'ai un problème avec le Service client qui dispose d'utiliser WS-Security.Mon client est écrit avec axis2.Il fonctionne lorsque je n'ai pas l'activer la cryptographie (bien sûr avec mon émulateur de serveur).J'ai activé la cryptographie en ajoutant à axis.xml:

<!--Signature and Encryption : Using the request's certificate-->
<module ref="rampart" />

<parameter name="OutflowSecurity">
  <action>
    <items>Signature</items>
    <user>mn</user>
      <passwordCallbackClass>PWCallback</passwordCallbackClass>
      <signaturePropFile>client.properties</signaturePropFile>
    <signatureKeyIdentifier>SKIKeyIdentifier</signatureKeyIdentifier>
    <signatureParts>{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body</signatureParts>
  </action>
</parameter> 

Maintenant, quand j'invoque client à partir d'Eclipse avec des arguments:

-Daxis2.xml=axis-repo/conf/axis2.xml -Daxis2.repo=axis-repo

J'ai eu:

org.apache.axis2.AxisFault: CryptoFactory: Cannot load properties: client.properties
at org.apache.rampart.handler.WSDoAllSender.processMessage(WSDoAllSender.java:67)
at org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:72)
at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
...
Caused by: java.lang.RuntimeException: CryptoFactory: Cannot load properties: client.properties
at org.apache.ws.security.components.crypto.CryptoFactory.getProperties(CryptoFactory.java:258)
at org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:171)
at org.apache.ws.security.handler.WSHandler.loadSignatureCrypto(WSHandler.java:431)
at org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:137)
at org.apache.rampart.handler.WSDoAllSender.processBasic(WSDoAllSender.java:201)
at org.apache.rampart.handler.WSDoAllSender.processMessage(WSDoAllSender.java:64)
... 9 more
Caused by: java.lang.NullPointerException
at org.apache.ws.security.components.crypto.CryptoFactory.getProperties(CryptoFactory.java:253)
... 14 more

Je suis en mesure d'ouvrir client.properties comme File objet.J'ai essayé de mettre ce fichier dans différents répertoires ou a changé son nom à utiliser le chemin complet (les deux barres obliques, et les barres obliques inverses pendant que je travaille sur Windows) mais rien n'y fait.

Mon client.les propriétés de fichier ressemble à ceci:

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=mn
org.apache.ws.security.crypto.merlin.file=mn_keystore.ks

Aucune idée de pourquoi j'ai eu cette erreur?

Était-ce utile?

La solution

J'ai trouvé que j'ai à ajouter client.properties et mn_keystore.ks pour wss4j-1.5.8.jar.Je ne sais pas si c'est par la conception.Ma préférence est d'avoir à la fois les fichiers de ce .jar de la bibliothèque.

MODIFIER:sur d'autres, j'ai essayé avec différents client.properties et cela a fonctionné!Maintenant wss4j-1.5.8.jar est qu'à l'origine, sans configuration et le fichier de clés.Je ne sais pas pourquoi ce travail, et ce n'est pas travaillé de plus en plus tôt :(

EDIT2:lors de l'Éclipse exécuter l'application, il n'est probablement pas ajouter un répertoire de projet à claaspath.J'ai démissionné de l'ajout .properies fichier à certains .jar et maintenant j'utilise:dans le menu, choisissez Exécuter->Debug Configurations, recherchez votre application Java et son classpath de l'onglet.Ensuite, sélectionnez "Entrées Utilisateur" et cliquez sur le bouton "Avancé" du panneau de droite, et sélectionnez "Ajouter un Dossier Externe".Maintenant, ajoutez répertoire avec votre .properties les fichiers.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top