Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Upgraded to Tomcat 5.0.19 + thoughts on Resin

I spent 5 minutes tonight and upgraded this site to use Tomcat 5.0.19. Everything seems to be working fine, save for a couple of new messages in catalina.out:

24-Feb-2004 7:48:34 PM org.apache.jk.common.HandlerRequest decodeRequest
WARNING: Error registering request
24-Feb-2004 7:48:44 PM org.apache.jk.common.HandlerRequest invoke
INFO: Unknown message 0

After talking with Rick last weekend, I'm going to try and migrate to Resin as my main dev appserver. The motivating factor was hearing Resin and Orion are so much faster than Tomcat. Sure I've heard this many times before, but mostly from Jakarta-haters. Rick's opinion holds a bit more water for me. Of course, he mentioned that his findings where based on Resin 2.x and Tomcat 4.x. I'd love to see a performance comparison between the latest versions of Orion, Resin and Tomcat.

I hope to modify AppFuse so it can easily run with Tomcat or Resin with a simple property switch. I've already started that process, but I hit a small snag.

I also hope to migrate this site to Resin 3.x soon. If nothing else, it'd be nice to learn more about Resin - and we all know the best way to learn a new technology is to interact with it on a daily basis.

Posted in Java at Feb 24 2004, 08:01:10 PM MST 11 Comments

I think Resin and Orion used to be much much faster than tomcat but is not the case anymore, they might be slightly faster but not much faster. Tomcat 5 had major rewrites that fixed speed, security and memory consumption.

Posted by Unknown on February 25, 2004 at 03:08 AM MST #

Also, Resin is not free software - it is free for development use but requires licenses for deployment.

Posted by Sam Newman on February 25, 2004 at 10:00 AM MST #

Resin is cool but Orion is probably one of the worst app servers around at the moment, purely because of the number of bugs. :rolleyes: If you can get your app running on Orion then it is pretty fast though.

Posted by Simon Brown on February 25, 2004 at 10:27 AM MST #

One of the problems with resin is that it is more forgiving than tomcat. You can develop stuff that does not work on tomcat. A lot of the opensymphony crew uses resin. The current download of sitemesh (a "released" version) does not work on tomcat (there is a patch in cvs though). I hope they get it fixed soon.

Posted by Matthew Payne on February 25, 2004 at 01:28 PM MST #

I know Orion was much faster than Tomcat 4.0.x, but I haven't seen speed comparisons since Tomcat added JSP tag pooling in 4.1.x. In any case, I really dislike how difficult Orion makes it to work with WARs. It prefers EARs - even if there's only a WAR inside. I've worked with both Tomcat and Orion/Oracle OC4J extensively, and find Tomcat more friendly to work with overall. I haven't objectively compared speeds.

Posted by Tim on February 25, 2004 at 04:26 PM MST #

Resin was way faster and easier than Tomcat 3. I dont know about Tomcat 4+. Resin is free for non commercial use also. It contains many cool developer features, like webapp autoreload on change, out of the box. Unfortunately I got used of Resins shortcut web.xml syntax, so migration to Tomcat is somewhat tedious (some time I'll write a XSLT). On the other hand there are way too many apps out there which claim to be "servlet xyz" compliant and when you look at them, the second step of installation is to set the absolute path to Catalina in some configuration property files. This really makes me sad.

Posted by Frank Nestel on February 25, 2004 at 04:48 PM MST #

Well, at least you'll be able to post fresh information. What is available is really stale ;) About migrating your site, you're indeed supposed to pay for a license, as only development is free with Resin.

Posted by Remy Maucherat on February 26, 2004 at 08:38 AM MST #

I've run comparisons in the past and found resin 1.x to be much faster than tomcat 3.x, and found resin 2.0 to be roughly 4 times faster than tomcat 4.0. I'm not sure how resin 3.x compares to tomcat 5. Resin is my favorite app server. I've never had trouble with it, and find configuration easier. Tomcat can exhibit strange behavior. On my last project we used Tomcat 4.1.27 on window for dev. Half the users had no problems, but the other half found that tomcat wouldn't automatically unpack the war files. Not worth the effort to troubleshoot the problem. Resin is commericial, but has very friendly licensing terms. I believe Caucho allows startups to use Resin for free until they have a certain amout of revenue. I'm sure you could use Resin for free on this site. If you ever hit the revenue marks from ads on your blog, you'd be more than happy to buy a $500 license.

Posted by Ted Bergeron on February 26, 2004 at 07:57 PM MST #

One thing you have to watch out for when using resin is that it is a little more forgiving. You can get lazy. :) I believe Resin is more forgiving with regards to the web.xml adhering to the ".dtd", where tomcat won't deploy/load that context if the web.xml does not validate against the "dtd" Also, tomcat throws and exception when you call getWriter(), then call getOutputStream() mid request or vis-versa. writer is generally for character content (most web requests). stream is generally for binary requests (eg. rendering pdfs). This is important when you are writing taglibs, helpers for tiles, sitemesh etc. In the end, please test your actual deliverables with a couple app servers. Matt Payne

Posted by Matthew Payne on February 26, 2004 at 09:09 PM MST #

Even if you are using jk, if the line "request.registerRequests=false" is added to $CATALINA_HOME/conf/, warning will not come out.

Posted by t-sat on March 10, 2004 at 04:43 AM MST #

I agree with thread -- it is critical that timing information become available as each new version of BEA Weblogic, IBM, Oracle oc4j orion, resin, tomcat become available. Caucho's point is well taken to measure mainly the overhead. However, we also need another dimension -- how the timing scales with multiple users. Tomcat seems to be competitive at a much larger number of users than it used to be. There needs to be a standard, that each web page that gives timing also give the (a) source codes, (b) DATE, (c) VERSIONS, and (d) number of users, and vary the number of users from the mythical numbers 1, 12, and 50, to possibly more now that tomcat can go much higher, where memory leaks used to kill it.

Posted by Mike Brenner on August 22, 2004 at 12:50 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed