2016-10-23 2 views
-2

Je dispose d'un service Web basé sur SOAP existant et j'essaie d'implémenter la sécurité du service web Spring en utilisant 'XwsSecurityInterceptor' et 'SpringDigestPasswordValidationCallbackHandler' . Voici à quoi ressemble ma configuration de printemps. enter image description herejava.lang.ClassNotFoundException: com.sun.xml.wss.XWSSecurityException

Je suis le déploiement de cette application dans JBoss7.1 AS.While les bottes d'application jusqu'à la suite exception thrown.It se plaint que le « com.sun.xml.wss.XWSSecurityException » ne se trouve pas. Maintenant, j'essaie de comprendre la cause première de ce problème. Donc je commence avec le fichier POM.

Les dépendances suivantes sont dans pom.

<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws-core</artifactId> 
    <version>${org.springframework.ws.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws-security</artifactId> 
    <version>${org.springframework.ws.version}</version> 
</dependency> 

<dependency> 
    <groupId>com.sun.xml.wss</groupId> 
    <artifactId>xws-security</artifactId> 
    <version>3.0</version> 
</dependency> 

<dependency> 
    <groupId>javax.activation</groupId> 
    <artifactId>activation</artifactId> 
    <version>1.1.1</version> 
</dependency> 

<dependency> 
    <groupId>javax.xml</groupId> 
    <artifactId>xmldsig</artifactId> 
    <version>1.0</version> 
</dependency> 

En tant que partie de mon R & D, je suis descendu aux anciens (2.1.2) versions de 'printemps-ws-core' & 'printemps-ws-sécurité' ainsi que « 1.0.2 'version de' sjsxp '. L'application a commencé et j'ai eu une erreur d'authentification quand j'ai donné un mot de passe invalide. L'application répond bien si je donne les informations d'identification correctes. C'est ce que je veux réaliser avec la dernière version de ces pots.

Maintenant, je veux savoir pourquoi il manque un 2.3.0/2.4.0.

J'ai donc essayé la 'dépendance mvn: tree -Dverbose' et j'ai trouvé que la version 2.1.2 apporte la 'xws-security' avec elle.

enter image description here

Je pensais d'ajouter que la dépendance.

<dependency> 
     <groupId>com.sun.xml.wss</groupId> 
     <artifactId>xws-security</artifactId> 
     <version>3.0</version> 
    </dependency> 

Maintenant, cela me force à ajouter deux dépendances. J'ai ajouté ceux aussi.

<dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.1.1</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.xml</groupId> 
     <artifactId>xmldsig</artifactId> 
     <version>1.0</version> 
    </dependency> 

Mais le second 'xmldsig' est manquante dans le repository. Je peux le télécharger et l'ajouter manuellement à mon repo m2 local. Mais je voudrais le réparer correctement. En cherchant je suis tombé sur ce fil. http://maven.40175.n5.nabble.com/where-to-get-xmldsig-1-0-jar-td92435.html

Il y a quelqu'un qui parle d'une alternative.

enter image description here

et je pouvais voir que c'est disponible à l'intérieur de la version 2.3.0 du «printemps-ws-sécurité: pot.

enter image description here

Maintenant, ma question est, ce qui doit être évité/ajoutée afin que les bottes d'application avec les dernières version de pots ?? les doigts croisés .....

+0

peut vous envoyer vos dépendances pom.xml (pas d'image) – kuhajeyan

+0

ajouté ... parfois je reçois la classe ne se trouve pas exception aussi ... thats quand je joue autour avec les dépendances maven .. – Renjith

+1

probablement un conflit de dépendance. vérifier avec 'mvn tree' ([lien] (http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html)) ou par le WTPlugin pour éclipse. – AntJavaDev

Répondre

4

Parfois, vous avez besoin d'être un archéologue logiciel afin de déboguer ces choses.

En regardant le pom pour spring-ws-security:2.4.0.RELEASE vous pouvez voir que la dépendance xws-security:3.0 est optionnelle (entre autres). Vous devez lire la documentation de spring-ws-security pour déterminer les dépendances optional que vous devez inclure. En supposant que vous ayez besoin du module xws-security, vous avez besoin de regarder , où l'archéologie entre en jeu Ce module remonte à 2008, une période pendant laquelle Java 5 était encore supporté. Java 6 (et/ou Java EE) et plus récent prend en charge toutes les API de la liste de dépendances de cet artefact. Y compris l'un d'eux dans vos artefacts de construction ou de déploiement est une recette pour la douleur.

Par conséquent, vous devez les exclure:

<dependency> 
    <groupId>com.sun.xml.wss</groupId> 
    <artifactId>xws-security</artifactId> 
    <version>3.0</version> 
    <exclusions> 
     <exclusion> 
      <!-- Part of JDK --> 
      <groupId>javax.xml.soap</groupId> 
      <artifactId>saaj-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <!-- Part of Java EE --> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
     </exclusion> 
     <exclusion> 
      <!-- Part of JDK --> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <!-- Part of JDK --> 
      <groupId>javax.xml.stream</groupId> 
      <artifactId>stax-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <!-- Part of JDK --> 
      <groupId>javax.xml.crypto</groupId> 
      <artifactId>xmldsig</artifactId> 
     </exclusion> 
     <exclusion> 
      <!-- Part of JDK --> 
      <groupId>javax.xml.ws</groupId> 
      <artifactId>jaxws-api</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
+0

Merci. Je n'ai pas encore eu l'occasion de le tester. Je vais essayer et revenir à vous. – Renjith

+0

WOW !!!! Génial. Merci beaucoup. Ça a marché. Pourriez-vous élaborer votre réponse? Je veux le comprendre complètement. Je n'ai pas compris cette partie "Ce module remonte à 2008, une période où Java 5 était encore supporté Java 6 (et/ou Java EE) et plus récent supporte toutes les API dans la liste des dépendances de cet artefact. eux dans vos artefacts de construction ou de déploiement est une recette pour la douleur. " – Renjith

0

Essayez avec spring-ws-security:2.4.0.RELEASE et spring version 4.3.3.RELEASE

+0

Ça n'a pas marché ... mis à jour ma question – Renjith

+0

Hier le titre de la question était 'java.lang.NoSuchMethodError: SpelParserConfiguration. 'et la piletrace pour cela était' (thread de service MSC 1-4) StandardWrapper.Throwable: java.lang.NoSuchMethodError: org.springframework.expression.spel.SpelParserConfiguration (Lorg/springframewor/expression/spel/Sp elCompilerMode; Ljava/lang/ClassLoader;) V sur org.springframework.context.expression.StandardBeanExpressio nResolver. (StandardB eanExpressionResolve r.java:98) [spring-context-4.3.2.RELEASE.jar: 4.3.2.RELEASE]. » –

+0

Si le problème est résolu, acceptez la réponse qui vous a aidé à le corriger, puis créez une nouvelle question pour votre nouveau problème. Si ce n'est pas le cas, mettez à jour la question avec des détails utiles en gardant le vieux titre et la vieille pile. –