38 votes

Spring 3.0: impossible de localiser Spring NamespaceHandler pour l'espace de noms de schéma XML

Mon installation est assez simple: j'ai une web front-end, back-end est le printemps-câblé.

Je suis à l'aide de l'AOP pour ajouter une couche de sécurité sur mes services rpc.

C'est du tout bon, sauf pour le fait que l'application web abandonne sur le lancement:

 [java] GRAVE: Contexte échec de l'initialisation de
 [java] org.springframework.les haricots.usine.de l'analyse.BeanDefinitionParsingException: problème de Configuration: Impossible de localiser le Printemps NamespaceHandler pour l'espace de noms XML schema [http://www.springframework.org/schema/aop]
 [java] la Délinquance des ressources: ServletContext de ressources [/WEB-INF/gwthandler-servlet.xml]

Voici l'extrait de mon fichier de configuration xml:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    <aop:config>
        <aop:aspect id="security" ref="securityAspect" >
            <aop:pointcut id="securedServices" expression="@annotation(com.fb.boog.common.aspects.Secured)"/>
            <aop:before method="checkSecurity" pointcut-ref="securedServices"/>
        </aop:aspect>
    </aop:config>

J'ai lu sur internet que c'est peut-être mon classloading le cœur du problème. Douteux, car voici ma WEB-INF/lib:

./WEB-INF/lib
./WEB-INF/lib/aopalliance-alpha1.jar
./WEB-INF/lib/aspectj-1.6.6.jar
./WEB-INF/lib/commons-collections.jar
./WEB-INF/lib/commons-logging.jar
./WEB-INF/lib/ehcache-core-1.7.0.jar
./WEB-INF/lib/ejb3-persistence.jar
./WEB-INF/lib/hibernate
./WEB-INF/lib/hibernate/antlr.jar
./WEB-INF/lib/hibernate/asm.jar
./WEB-INF/lib/hibernate/bsh-2.0b1.jar
./WEB-INF/lib/hibernate/cglib.jar
./WEB-INF/lib/hibernate/dom4j.jar
./WEB-INF/lib/hibernate/freemarker.jar
./WEB-INF/lib/hibernate/hibernate-annotations.jar
./WEB-INF/lib/hibernate/hibernate-shards.jar
./WEB-INF/lib/hibernate/hibernate-tools.jar
./WEB-INF/lib/hibernate/hibernate.jar
./WEB-INF/lib/hibernate/jtidy-r8-20060801.jar
./WEB-INF/lib/jabsorb
./WEB-INF/lib/jabsorb/jabsorb-1.3.1.jar
./WEB-INF/lib/jta.jar
./WEB-INF/lib/jyaml-1.3.jar
./WEB-INF/lib/postgresql-8.4-701.jdbc4.jar
./WEB-INF/lib/sjsxp.jar
./WEB-INF/lib/spring
./WEB-INF/lib/spring/org.springframework.aop-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.asm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.aspects-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.beans-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.context-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.context.support-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.core-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.expression-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.instrument-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.instrument.tomcat-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.jdbc-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.jms-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.orm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.oxm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.test-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.transaction-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.portlet-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.servlet-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.struts-3.0.0.RELEASE.jar
./WEB-INF/lib/testng-5.11-jdk15.jar
./WEB-INF/web.xml

48voto

xgMz Points 1231

Rencontre cette erreur lors de l'utilisation de maven-ombre-plugin, la solution a été notamment:

META-INF/spring.les schémas

et

META-INF/spring.les gestionnaires d'

les transformateurs dans le maven-ombre-plugin lors de la construction de...

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.handlers</resource>
                        </transformer>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.schemas</resource>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>

(Crédits: Idée pour éviter que le printemps.de la manipulation et du printemps.les schémas écrasé lors de la fusion de plusieurs dépendances spring dans un seul bocal)

16voto

Kevin Points 161

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html

J'ai rencontré un problème similaire en utilisant le plugin maven-shadow-plugin. J'ai trouvé la solution à mes problèmes dans leur page d'exemple ci-dessus.

12voto

delfuego Points 9288

Quel IDE (le cas échéant) utilisez-vous? Cela se produit-il lorsque vous travaillez au sein d'un IDE, ou uniquement sur le déploiement? S'il s'agit d'un déploiement, cela peut être dû au fait que le mécanisme de déploiement que vous utilisez - maven-assembly créant un seul JAR avec des dépendances est un coupable connu - réduit tous vos JAR dans un seul répertoire et les fichiers de schéma et de gestionnaire Spring écrasent chacun autre.

9voto

Peter Lynch Points 399

Avez-vous essayé de mettre tous vos pots directement dans le répertoire WEB-INF/lib au lieu de sous-répertoires?

Non WEB-INF/lib/spring/org.springframework.aop-3.0.0.RELEASE.jar , seulement WEB-INF/lib/org.springframework.aop-3.0.0.RELEASE.jar

Même chose avec le reste des pots.

1voto

skywind Points 11

Je suis tombé sur une erreur similaire, mais se référant à Spring Webflow dans un nouvellement créé Roo projet. La solution pour moi s'est avéré être (Projet) / clic droit / Maven / Activer les Dépendances Maven (suivi par quelques redémarre et republie pour Tomcat).

Il est apparu que les STS ou m2Eclipse était pas à pousser tout le spring webflow bocaux dans l'application web lib. Je ne sais pas pourquoi. Mais maven permettant la gestion des dépendances et puis la reconstruction semble résoudre le problème; le webflow pots enfin d'être publié et ainsi, il peut trouver de l'espace de noms du schéma de référence.

Je me suis renseignée sur ce en explorant le répertoire de tomcat que l'application web a été publié, en cliquant sur dans WEB-INF/lib/ alors qu'il était en cours d'exécution et de s'apercevoir qu'il manquait webflow fichiers jar.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X