I’ve seen a lot of articles lately that talk about the nuts and bolts of moving from one J2EE server to another.

I’ve also seen that a number of companies are struggling with this issue, sometimes even just when upgrading to a newer version from the same vendor.

Umm…folks…J2EE is supposed to be a standard.

Remember, “write once, run anywhere” ? That was supposed to be especially easy on the server side. Well, actually it is, if you resist the temptation to use proprietary, non-standard features.

I have never willingly written a line of vendor-specific J2EE code or configuration - and I suggest that you don’t either. There’s almost always a standards-compliant, or at least portable way to do whatever you need. If you’re having an issue moving your J2EE application to a different server, you’ve probably done something horribly wrong. Frankly, this is true of databases as well (see my “stupidity rant” from earlier today).

Ok, so you have a legacy app that uses vendor-specific features. Maybe you didn’t write it - you’re just stuck maintaining it. Remember this when you are rewritng your legacy app - stay away from vendor-specific features this time, and don’t create another instant-legacy app.