2010-10-08 11 views

Odpowiedz

5

Zakładając, że masz tylko jedną usługę Tomcat z jednego złącza, można uzyskać do niego dostęp w Servlet przez:

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

ServerFactory jest przy okazji org.apache.catlina.ServerFactory.

Uwaga: ten kod jest ściśle powiązany z serwletem Tomcat servletcontainer, a aplikacja webapp nie może być ponownie użyta na innych kontenerach servletcontainers, być może nawet nie w różnych wersjach. Rozważ konfigurację własnego parametru kontekstu w web.xml o tej samej wartości.

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

Następnie można uzyskać do niego dostęp w Servlet przez

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

lub w JSP przez

${initParam.maxPostSize} 
+1

Niestety w Tomcat 7 nie ma już składnika ServerFactory. –

3

W Tomcat7 klasa ServerFactory znika. Widocznie trzeba być w stanie uzyskać odniesienie Server przy użyciu

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

... który rezyduje w org.apache.openejb: tomee-ładowarki.

+0

Dziękuję, właśnie tego szukałem: StandardServer tomcatServer = TomcatHelper.getServer(); \t \t Usługa [] services = tomcatServer.findServices(); –