2012-01-29 26 views
10

Recientemente comencé a incorporar Tomcat 7 para mis pruebas de integración, en lugar de Tomcat 6, ya que necesito algunas de las 7 características y es nuestro contenedor de destino. El rendimiento es muy lento en comparación con Tomcat 6 integrado. Está tomando en el orden de 20 segundos para iniciar el servidor. Este es el código que estoy usando:Tomcat integrado 7 comparación lenta con Tomcat 6

Tomcat tomcat = new Tomcat(); 
tomcat.setPort(port); 
tomcat.setSilent(true); 

tomcat.setBaseDir("."); 
tomcat.getHost().setAppBase(webappDir); 

tomcat.addWebapp(context, "");  
tomcat.start(); 

¿Alguien más ha experimentado esto u obtenido sugerencias para mejorar el rendimiento? Estoy ejecutando pruebas en Windows 7, Linux Mint y Ubuntu.

+3

¿Usted * * simplemente decir el tiempo de inicio es más larga? (Esa es una medida de rendimiento bastante limitada para los servidores que normalmente se espera que estén activos durante días, semanas o meses sin un reinicio ...) –

+0

Sugeriría usar Embedded Jetty en su lugar. No he intentado Tomcat integrado, pero Jettu corre lo suficientemente rápido. – Anton

+1

Jon, está incrustado, por lo que el tiempo de arranque es lo importante aquí. Uno esperaría que el servidor integrado fuera algo más ligero que el servidor normal. –

Respuesta

15

Quizás sea lento debido al escaneo classpath que se requiere para la configuración de Servlet 3.0 basada en anotaciones. Si no necesita estas características, intente agregar metadata-complete="true" a su web.xml.

+1

¡Sí, eso fue todo! Tiene un tiempo de arranque de hasta 6 segundos: –

+0

Funciona para mí también. Gran respuesta, gracias. – Danijel

+1

¿Esto deshabilitará por completo la configuración basada en anotaciones? ¿O simplemente desactiva el 'escaneo' pero la configuración basada en anotaciones aún funcionará? – ziggy

5

Esto es lo que en realidad se ve en la cabecera web.xml:

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

Algunos más información aquí: Tomcat and Servlet 3.0 Web Configuration