41 votes

Que faire des annotations après la définition de metadata-complete = "true" (résolution du démarrage lent de Tomcat 7)?

Semble que la lenteur de Tomcat 7 problème de démarrage peut être résolu avec des "métadonnées" achever "true" dans le web.xml, comme suit:

<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" id="WebApp_ID" version="3.0"...

Le problème est que le serveur Tomcat scans pour les annotations au démarrage, et ce de manière significative la ralentit. Mon temps est réduit de 25 secondes à 5 secondes. (Plus d'infos ici: Tomcat Servlet 3.0 Configuration Web)

Cependant, j'ai quelques annotations dans mon code, comme:

@ManagedBean
@RequestScoped
@Override
...

Je suis confus - mon code du travail, après j'ai mis des métadonnées complètes="true"? Dois-je supprimer les annotations et passer le tout dans web.xml?

70voto

BalusC Points 498232

La lenteur de démarrage est dû au fait que chaque fichier de classe dans chaque fichier JAR en /WEB-INF/lib est également analysé pour Servlet 3.0 des annotations spécifiques. Apparemment vous avez beaucoup de (gros) fichiers JAR en /WEB-INF/lib.

L' metadata-complete="true" indique que les fichiers JAR en /WEB-INF/lib n'a pas besoin d'être numérisé pour la Servlet 3.0 des annotations spécifiques, mais la webapp propres classes vont encore être analysé.

Notez que vous avez énumérés, il y a deux JSF annotations et un Java SE annotation, pas une Servlet 3.0 annotations. La Servlet 3.0 annotations sont répertoriés dans l' javax.servlet.annotation package. JSF numérise uniquement pour les annotations lorsque le fichier JAR contient un JSF 2.0 compatible, /META-INF/faces-config.xml le fichier. Il ne sera pas immédiatement la numérisation de chaque classe unique dans chaque fichier JAR. Le Java SE @Override d'annotation n'est pas un moteur d'exécution d'annotation, mais au moment de la compilation que de l'aide.

Voir aussi:

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