I am not sure what could be the problem with this app. But same app works fine in weblogic.
I have a simple webapp that provides user profile data to the user. The request parameter is the profile id that gets passed to the struts2 action which reads the data from the MYSQL server and sends it back to the browser using a jspx files.
When I invoke the url with param id=0 it works fine.
but when I invoke it with param=1 it sends me back the data for param=0 in the browser.
When I restart tomcat and invoke url with param id=1 then it provides correct result. I put logs in the action file after and it prints correct(expected) results all the time, but it shows wrong result on the browser.
I deployed the same app on weblogic10.3 and it works fine all the time.
I am going to take a guess and say that your problem is really due to having used an instance variable somewhere in your servlet and it is only an accident that you got one result in weblogic and another in Tomcat.
I do not use any Servlet, I use Strtus2 action class( that internally uses some Filter to forward request to Action class). I developed this application first on weblogic and it works fine everytime. The I started to deploy it in tomcat and it gives me this issue everytime.