2010-10-08 22 views

Respuesta

5

Asumiendo que usted tiene solamente un servicio Tomcat con un conector, a continuación, se puede acceder a él en el servlet por:

int maxPostSize = ServerFactory.getServer().findServices()[0].findConnectors()[0].getMaxPostSize(); 

ServerFactory es por cierto org.apache.catlina.ServerFactory.

Nota: esto ajusta su código al servletcontainer Tomcat y su aplicación web puede no ser reutilizable en otros servletcontainers, posiblemente incluso versiones no diferentes. Considere la posibilidad de configurar su propio parámetro de contexto en web.xml con el mismo valor.

<context-param> 
    <param-name>maxPostSize</param-name> 
    <param-value>2097152</param-value> 
</context-param> 

A continuación, puede acceder a él en el servlet por

int maxPostSize = Integer.valueOf(getServletContext().getInitParameter("maxPostSize")); 

o en JSP por

${initParam.maxPostSize} 
+1

Lamentablemente en Tomcat 7, ServerFactory se ha ido. –

3

En Tomcat7 se ha ido a la clase ServerFactory. Al parecer, uno debe ser capaz de obtener la referencia del servidor usando

org.apache.tomee.loader.TomcatHelper.getServer() 

... que reside en org.apache.openejb: tomee-loader.

+0

Gracias, esto es exactamente lo que estaba buscando: StandardServer tomcatServer = TomcatHelper.getServer(); \t \t Servicio [] services = tomcatServer.findServices(); –

Cuestiones relacionadas