Developing JSF/EJB3.0 apps with NetBeans 5.5

So far I have been very impressed with the EJB3.0 support in Netbeans 5.5. The more I use it the more I am impressed. I am having a couple of migration issues from Eclipse, like hotkey shortcuts I used regularly in Eclipse and having to find the equivalent, but on the whole, Netbeans 5.x is a very slick IDE.

I have been prototyping a EJB3.0 app and decided to give the ‘JSF pages from Entity Beans’ option a try. Wow, what a cool feature. I haven’t got into JSF yet, so this will give me a headstart. Select the Entity Bean from the wizard and it generates standard CRUD page functionality for the bean. Very cool.

I’m having a couple of issues deploying the app to JBoss 4.0.4RC1 so far though, and since I’m not familiar with JSF yet, I’m stuck for how to fix it, so I logged a bug on the NetBeans site.

74383: JSF from Entity Beans – does not deploy to JBoss – I’m getting a deployment error when my app is deployed to 4.0.4RC1. Not sure what this is about.

Desgin approaches to EJB3.0 apps

DeveloperWorks have an article that introduces a design approach for applications using the EJB3.0 spec and the JPA API.

The approach outlined in this article suggests using Stateless Session Beans as your DAOs, using the JPA API directly in order to manipulate your Entity beans.

While this is ok and it works, I am not sure that this approach gives you the best separation of concerns. Sure, the Session bean has long been used for it’s main purpose to demarcate transactions with CMT (even prior to EJB3.0), but this feature can still be used if you lift is persistence code out of the bean implementation itself and put it in a persistence specific DAO class.

Locating classes in Jars

This is a problem at some point in time we all run into – I have this Class, now what Jar is it coming from, or what Jar do I need to provide this class?

JarFinder.com have an online Jar search engine that searches the Jars from most well known Java projects and displays a list of most likely results. This is an awesome service to have in your back pocket for when this problem comes up next time…