2010-09-28 11 views
1

J'ai des problèmes avec une application jersey fonctionnant sur un serveur jetty qui va prendre jusqu'à 30 secondes pour démarrer. Je ne sais pas ce qui provoque ce comportement, et je ne sais pas comment le déboguer.Comment forcer Jersey à charger ses services?

Jersey n'est pas démarré tant que la première requête HTTP n'a été effectuée pour l'un de ses services. Après la première demande est faite, ce qui suit est imprimé:

INFO: Initiating Jersey application, version 'Jersey: 1.3 06/17/2010 04:53 PM' 

Après cela, 5 à 45 secondes passent, puis imprime en jersey plus sur les ressources qu'il a trouvé et répond à la requête HTTP. Tout d'abord, je voudrais forcer le maillot à démarrer lorsque le reste de l'application commence comme un hack pour contourner le problème jusqu'à ce que je trouve le coupable. Y at-il un moyen de le faire sans émuler une requête HTTP réelle à la jetée? Deuxièmement, je suis perplexe quant à la façon de déboguer cela. J'ai vérifié les constructeurs dans mes classes de service, et ils ne semblent pas être responsables. Quelqu'un at-il eu des problèmes similaires avec le maillot?

Répondre

0

Vous pouvez essayer ce qui suit dans votre web.xml:

<servlet> 
    <servlet-name>ServletAdaptor</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

Je ne sais pas pourquoi il y aurait un retard important - peut-être qu'il fait une certaine forme de mises à jour pour vérifier - vous êtes en mesure de surveiller le trafic http de votre application? Glassfish fait cela et cela peut prendre un certain temps.