I'm migrating a legacy application from Weblogic to JBoss EAP 7. The application contains custom tags which were not created with tag pooling in mind (e.g. they have internal state not properly cleaned up in doEndTag).
According to RedHat docs https://access.redhat.com/solutions/1186363, in EAP 6 there was a parameter to be set in web.xml:
<servlet>
...
<init-param>
<param-name>enablePooling</param-name>
<param-value>false</param-value>
</init-param>
...
</servlet>
Unfortunately, looks like in EAP 7 this is only doable by configuring the undertow subsystem.
<subsystem xmlns="urn:jboss:domain:undertow:4.0">
...
<servlet-container name="default">
<jsp-config tag-pooling="false"/>
<websockets/>
</servlet-container>
My problem is my application needs to run on a Docker image that I cannot modify nor request to modify, since it's intended to be shared among different applications which might perfectly work with tag pooling. Hence editing standalone.xml or other server-wide configuration files is not feasible. What I can do:
- I provide the war/ear file, so I can modify anything inside it (e.g. web.xml, jboss-web.xml, java code, ...). The EAP 6 solution would be perfect if it worked on EAP 7
- I can edit system properties
- I can edit environment variables
Is there any way to disable tag-pooling given these constraints?