2009-02-08 10 views
2

J'ai une application Web Spring qui fonctionne correctement sur Tomcat 5.5. J'ai essayé de déployer la même application Web sur un conteneur Tomcat 6 et de faire face à des problèmes.Problème lors de la migration de Spring Web App de Tomcat 5.5 vers Tomcat 6.0

Les deux principaux problèmes que j'ai rencontrés concernent la configuration du conteneur pour jstl et le bon fonctionnement de la connexion de sécurité de printemps.

Je crois que j'ai résolu le problème de configuration de jstl en incluant la librairie jstl-1.2.jar de here dans le répertoire $ CATALINA_HOME/lib (bien qu'il semble vraiment étrange qu'il soit si difficile de savoir comment pour que cela fonctionne).

Le problème principal maintenant est que lorsque j'essaie de me connecter en utilisant une authentification basée sur un formulaire, j'obtiens une erreur HTTP 404 lorsque le formulaire de connexion est soumis à "j_spring_security_check".

J'ai configuré le filtre dans le fichier web.xml conformément à la documentation de sécurité de printemps, mais il semble que tomcat n'invoque pas ce comportement comme prévu.

J'espère que quelqu'un peut partager leur expérience ici car il me manque certainement quelque chose de fondamental dans ma configuration.

Merci.

Mise à jour: Alors que le dépannage à partir des réponses ici, l'une des choses que je fini par faire téléchargeait une nouvelle copie de tomcat 6.0.18 et nous avons vérifié que j'avais le fichier jstl-1.2.jar dans le WEB -INF/lib rép. Curieusement, maintenant l'application semble bien fonctionner.

Je suis un peu perplexe mais je vais maintenant essayer de trouver la différence dans les deux installations de tomcat qui causaient l'erreur et de poster une autre mise à jour ici.

Merci pour les réponses à ce gars.

Répondre

1

si vous utilisez Maven, vous avez besoin pour jstl:

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>runtime</scope> 
    </dependency> 
1

Il est trop difficile de dire ce qui ne va pas, sur la base des informations fournies.

Les bibliothèques partagées communes utilisées pour aller en commun/lib dans Tomcat 5.x et versions antérieures; maintenant ils appartiennent au répertoire/lib.

Personnellement, je préfère mettre autant que je peux dans le WEB-INF/lib de mes déploiements, car je ne veux pas avoir besoin de configurer un serveur d'une manière particulière. Si le chargeur de classe peut trouver tous les JAR dont il a besoin dans mon fichier WAR, je suis content. Tomcat 5.x et 6.x utilisent à la fois le JAR JSTL version 1.2, ce qui est courant. C'est l'endroit qui a changé. Je vous recommande de créer votre fichier WAR avec les fichiers JAR dont vous avez besoin dans WEB-INF/lib. Si vous utilisez Spring Security, le module anciennement appelé ACEGI, assurez-vous que ces JAR sont également disponibles.

Un HTTP 404 - est-ce que ce n'est pas juste un problème de déploiement ou d'URL? Essayez de désactiver la sécurité Spring en la commentant hors du fichier de configuration et en redémarrant. Votre application devrait juste venir si tout le reste va bien. Ensuite, vous saurez que vous devez vous concentrer sur. Sinon, vous pouvez continuer à chercher quoi d'autre est faux.

0

Je suis d'accord w/duffymo, pas assez d'informations. Essayez d'activer la journalisation détaillée dans votre application et voyez s'il y a quelque chose d'évident dans les journaux.