Re: Running struts war files in tomcat5
Colin Brown on 18/05/06 22:00, wrote:
I've installed (only) kaffe and tomcat5 (tried testing, stable, and
unstable) onto a debbootstrap. It works OK for static content, but
fails when I install a WAR file containing a struts-based app. (I've
tried the Ibatis jpetstore app as well as other local struts apps that
were lying around.) The error is a sealing violation for
(org.apache.commons.collections is sealed).
I traced the interfering package to a jar file in the war file:
commons-beanutils.jar, which has a few of the collections package
classes in it (including FastHashMap) in addition to the bean utils
stuff, and thus causes the sealing violation against the
commons-collections3.jar file in /usr/share/tomcat5/common/lib.
I tried building a new jar file for the webapp with the
org.apache.commons.collections package removed: but the servlet won't
load. Unfortunately, all I see is a mesage reporting an exception while
creating bean com.ibatis.jpetstore.presentation.CatalogBean -- no
details as to why either in the message or preceding it in the log.
The war file works fine (with its original jar file that contains the
puzzling partial duplicate of the collections package) in other Tomcat 5
installations, on both Windows and Linux systems. It seems to be
something about the Debian tomcat5 package that introduces the sealing
I've tried mucking with the libs in /usr/share/tomcat5/common/lib (under
the belief that these are shared among all web apps) without any luck --
anything I remove seems to break something new. I've also investigated
the classpath in the startup script but don't see much to play with
there (I'm not sure if this affects the set of packages that the webapps
see or not.)
- Is there something well known about using struts webapps with the
Debian tomcat5 package? (Special config needed, don't try it, etc.)
- Is there another way to control the common packages seen by webapps
other than /usr/share/tomcat5/common/lib?
- Should I perhaps give up on the Debian package and install Tomcat
directly from the Apache downloads?
- Did Apace perhaps leave the packages unsealed and Debian added
sealing for added security?
Sorry, if this query doesn't belong in this list, but since the war
files work elsewhere, it seems like there's something Debian-specific
going on here and I don't see any more-specific list among the lists
What is a 'sealing violation'? Did you see a stack trace in the tomcat console / logging? Paste it in an email.
Does the application with struts in it have any notes specifying which versions you should be using, esp. commons-beanutils?