Posts

Showing posts with the label j2ee

Ehcache: deploy multiple versions of a Grails app (fix javax.management.InstanceAlreadyExistsException)

When a Grails application makes use of the Ehcache cache plugin in its default configuration it can be impossibile to perform deploys of multiple versions of the app, even though the container might support it. The same plugin (in its default configuration) also breaks deploying multiple different Grails apps on the same container. The problem is in the way the plugin generates the name for the cache (which will then be used to register the cache jmx bean): the name is by default set grails-cache-ehcache . When another second application or another application version is deployed registration will fail because the name already exists. The exception message is the following (indented for clarity): org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheManagementService': Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: javax.management.InstanceAlreadyExistsException: net.sf.ehcache:type=CacheM...

Merry Christmas!

It's that time of the year again and, since it appears that the Maya spared us, I want to share with you a couple of gists that I came up with recently that could be generally useful. Btw, there are lots of other gists on my gist.github.com profile, check them out. If you find these script useful star them on github, drop me a comment or just share them. Once again, Merry Christmas everyone! The first one is for Java people and is a HttpServletRequestWrapper that supports: injection of the principal: for those cases when you use trust authentication and you are rolling your own SSO solution and/or you need to integrate with an existing SSO solution (I used it with for CAS ) supports reading of the InputStream multiple times. We all know that in a POST the request input stream can only be read once, so this will definitely help you if you need to access the post body or a request parameter in a Filter and make sure the upstream servlets/filters still work

HOWTO: Parallel deployment on tomcat 7

News broke out recently that Tomcat 7 supports parallel deployment . This feature allows one to deploy a newer version of a web application while maintaining the current one online. The net effect is that new users will be connected to the newest version while already connected users will not be kicked out. Neat uh? One could even have more than two versions online at any time (if that was necessary). The details of how this works are explained in the Context Container documentation . Only it doesn't really tell you how to use it, it tells you how they implemented instead. So what do you have to do to take advantage of this great feature? First of all upgrade to Tomcat 7 (which btw requires Java 6), but you knew that already, didn't you? Then simply adopt the following naming strategy when deploying apps: name your war file mygreatapp## version .war (note the ## used to mark the beginnning of the version substring) where version can actually be anything (it is ma...