2008-10-28 6 views
1

Je regarde la sortie du printemps chargée par tomcat et il y a quelque chose de très étrange ... Tout est dupliqué. Qu'est-ce qui causerait ça? Quoi qu'il en soit, mon application fonctionne de façon étrange.Configurations de ressorts en double en cours de chargement?

Informations additionnelles:

L'application est une application web. Toutes les informations printanières sont chargées à l'aide du contexte loader (?) Défini dans le fichier web.xml. Mes fichiers de configuration sont répartis entre 6 (ou plus) fichiers.

Exemple sortie de débogage:

[DEBUG, DefaultFilterInvocationDefinitionSource, principal] Ajout modèle d'URL:/**; attributs: [REQUIRES_SECURE_CHANNEL]

[DEBUG, DefaultFilterInvocationDefinitionSource, principal] Motif d'URL ajouté:/**; attributs: [REQUIRES_SECURE_CHANNEL]

[DEBUG, DefaultFilterInvocationDefinitionSource, principal] Motif d'URL ajouté:/**; attributs: [ROLE_READ, ROLE_UPDATE]

[DEBUG, DefaultFilterInvocationDefinitionSource, principal] Motif d'URL ajouté:/**; attributs: [ROLE_READ, ROLE_UPDATE]

[DEBUG, AbstractFallbackMethodDefinitionSource, principal] Ajout de la méthode de sécurité [CacheKey [com.service.impl.FooServiceImpl; public abstract java.lang.Boolean com.service.IFooService.saveOrUpdateFoo (com.model.Foo2, java.lang.String) jette org.springframework.dao.DataAccessException]] avec l'attribut [[ROLE_UPDATE]]

[DEBUG , AbstractFallbackMethodDefinitionSource, main] Ajout de la méthode de sécurité [CacheKey [com.service.impl.FooServiceImpl; public abstract java.lang.Boolean com.service.IFooService.saveOrUpdateFoo (com.model.Foo2, java.lang.String) jette org.springframework.dao.DataAccessException]] avec l'attribut [[ROLE_UPDATE]]

[INFO , AbstractSecurityInterceptor, principal] configuration validé attributs

[INFO, AbstractSecurityInterceptor, principal] configuration validé attributs

Répondre

2

Etes-vous sûr que quelque chose dans la configuration de l'exploitation forestière n'ajoute chaque catégorie/enregistreur à appender plus une fois que?

C'est quelque chose qui est possible avec log4j, pas sûr de JCL ou de ce que la dernière version de Tomcat utilise sous la couverture.

+0

Je dirais que je suis sûr à 95%. Étant donné que chaque demande http est en cours de traitement deux fois me porte à croire printemps est "chargé deux fois" – IaCoder

+0

Êtes-vous sûr que vous ne recevez pas réellement deux demandes http? Que montre le journal d'accès de Tomcat? –

+0

Cela ressemble vraiment à une sortie de journalisation en double. Avez-vous vérifié les horodatages? Si elles sont exactement les mêmes, il est probable que votre application fasse des choses qui coûtent cher, et donc les horodatages ne devraient pas correspondre. – MetroidFan2002

0

Dans Tomcat, si votre application est configurée pour être l'application par défaut, elle doit être déployée sous le répertoire/root. Si ce n'est pas le cas, Tomcat lancera 2 copies de votre application, une où vous l'avez mise, et une où elle attend la valeur par défaut.

Cela pourrait expliquer ce qui se passe ici, en supposant que je me rappelle tout cela correctement.

0

La réponse et les commentaires ici sont très susceptibles d'être corrects.

Publiez votre configuration log4j en tant que mise à jour/modification de votre question, puis je publierai le correctif sous forme de mise à jour/modification de ma réponse.

0

je fais face au même problème avec vous, et il était juste un problème de configuration de log4j, voici ma configuration originale

<category name="org.springframework"> 
    <level value="INFO"></level> 
    <appender-ref ref="basicAppender" /> 
</category> 

Dans cette configuration, toute la classe dans le package org.springframework enregistrera une fois parce que Si je n'ai pas défini la propriété additivity sur false, l'enregistreur "org.springframework" se reconnecte et tous les journaux sont dupliqués. Donc, je viens de définir la propriété additivity sur false, et cela fonctionne. Eh bien, c'est juste ma situation, que cela vous soit utile.

Questions connexes