EJB 3.0 in a Nutshell 27
Rusty Nuts writes "JavaWorld has a great article on the future of Enterprise JavaBeans (EJB). Are you frustrated learning EJB 2.1 or already know EJBs but loathe its complexities? Hold on a bit more for the the future of EJBs is looking brighter for you."
Book recommendations (Score:2, Interesting)
I'm quite happy with using Java Servlets and JavaServer Pages - they're great technologies that clearly address shortxcomings on what came before.
However, Enterprise Java Beans make my brain ache. I've tried reading a couple of books that had reasonable reviews on Amazon, but I've still not got much confidence that I could use them well. Can anyone recommend some decent books on EJB's, or is it not worth the bother?
Re:Book recommendations (Score:5, Interesting)
- Transactions
- Persistance
- Security
- Scalability
Transactions (like the servlet api) are provided via an API subset that you can add to any program (J2EE or otherwise).
The J2EE persistence layer is almost silly. It would take a bit of writing to explain the historical reasons for the mistakes, but essentially Entity Beans were made to fulfill a need that no one had (client side references to server side persistable objects). Sun then changed their mind as to what need they filled (they are now simply a persistence model), and then kept making improvements to compete at this new task. Almost any other persistence model runs as well and they are all less complicated. J2EE 3 promises to improve on both fronts, but by leaving backwards compatibility, they haven't really reduced the learning curve much.
J2EE also has method level declarative security. Since the declarations are in the deployment descriptor, their not really dynamic. This isn't anything really exciting either.
Scalability is a bit difficult to argue. The lighter weight alternatives to J2EE (servlet containers, Spring, etc.) may scale to a decent size, but I haven't seen any example of huge applications being run with these solutions. If anyone hears of an Ebay sized app running on a Tomcat cluster, please post.
If you really want to learn EJB still, I would look for an entry level J2EE job. The books explain the implementation details, but I have yet to see any give honest explanations of when you should use parts of J2EE and what their limitations are.
Re:Book recommendations (Score:3, Informative)
Um, no thanks. JSP sucks. Having code in the UI layer is a big no-no. JSP's are hard to maintain. I agree with you that J2EE persistence with EJB's sucks, but you can certainly do a lot better than jsp and servlets.
Check out Tapestry [apache.org], a much better way to write web apps than JSP, using MVC so that your html page is just an html with certain id's on some tags, and you have components that can be placed inside other components to make up a page. Or use Struts. Or
Re:Book recommendations (Score:1)
I'm not attacking your or making any claims about your skill level. Slashdot is a festering buch of he said she said bullshit and I want to make sure folks are clear.
happy java coding!
Re:Book recommendations (Score:2)
You are right, in that JSP isn't the cleanest solution. Tapestry is much cleaner. I've seen demos of velocity.. it just looks like another syntax of jsp to me. I don't see how i
Re:Book recommendations (Score:2)
I read the parent to your post AFTER I replied to you. Actually I think my original post goes more to the grandparent than to you, since he was saying that J2EE is too much bloat and that plain JSP and servlets was enough (clearly not the case and you already know it).
Re:Book recommendations (Score:3, Insightful)
Re:Book recommendations (Score:2)
Re:Book recommendations (Score:1)
EJB 2.0 is not a complete solution -- and I don't see 3.0 being that way either. Luckily, the Java community provides us with the grout to fill in the cracks of our projects: we ju
Re:Book recommendations (Score:1)
Re:Book recommendations (Score:1)
I used to teach at USF. I had a simple sample application coded many different ways for the students to study. You can find that sample code on this page, http://testbox3.menlo.edu/demo/ism410/faves.html [menlo.edu].
The last two code samples linked from this page feature EJB code. One uses a stateless session bean and the other one also uses a Bean Managed Persistance entity bean.
This is a little out of date but the samples were desi
A small step in the right direction (Score:5, Informative)
Now with EJB 3.x they're promising to make a half-assed attempt at solving the problem. Now you'll annotate your Java code, and the vendors will supply tools to turn the standard annotations into their proprietary deployment files.
So, you'll still have to deal with a mess of different tools, and you still won't be able to deploy the same application EAR anywhere, but at least you'll only have one set of syntax to learn to specify the deployment information, and you'll be able to keep the info in the same place as the actual code. So, a minor improvement.
Other stuff looks to be just as muddle-headed as before. Yay, a new syntax for EJB QL, to make it almost exactly the same as the SQL it was supposed to be a simple alternative to. Of course, nobody in their right minds uses entity beans anyway [pobox.com]...
The BileBlog has its usual acerbic take... (Score:1, Troll)
Spring, Hibernate... (Score:5, Informative)
Re:Spring, Hibernate... (Score:5, Interesting)
I find JDO and Hibernate both really nice technologies. The main difference being that JDO is a standard with multiple implementations (mostly commerical), vs Hibernate being a single open-source project, and that JDO uses code-morphing vs Hibernate just using reflection, which makes JDO more powerful but requires a post-compilation code-morphing stage.
If Sun would take either of these and replace the entity beans with them in the next J2EE spec that'd be great. But how do you come to the conclusion that JDO is basically going to be Hibernate?? JDO _is_ already on a level with Hibernate both in features and ease of use. JDO 2.0 brings a few good features missing from the JDO 1.x spec, but other than that is no major change.
Re:Spring, Hibernate... (Score:2)
From what I've seen, Hibernate is not using reflection; it's using CGLIB, which if I understand correctly, generates code on the fly to speed up invocations that would normally use reflection, without the need to do post-compilation code-morphing. Perhaps it uses reflection for some stuff but it is my understanding that they're using runtime code generation for the parts that would become bottlenecks were they using
The EJB Bible (Score:2, Informative)
And yes, Spring [springframework.org] is an incredibly powerful, flexible, and *simple* framework to use. I don't know that I've ever used the terms elegant or beautiful for software remotely related to J2EE, but Spring is amazing.
And no, I'm not involved in the project. Just a happy user.
ejb3 sounds like a hack (Score:2, Interesting)
Anyone can take a look at the spec. and you will know what I mean. I'd rather stay away from those arcane annotation style, and stick with Hibernate/Spring/XDoclet.
If something has been done, might as well try to co-exist with them. If trying to compete, fine, but at least do it properly. With those new stuff, it's not going to earn any more respect t
Re:ejb3 sounds like a hack (Score:2)
It's a new major version. EJB 3.x vs EJB 2.x. Most professional people consider this is the only time where it is acceptable to break backwards comaptibility.
If Sun needs to break backwards comaptibility to simpify EJBs, I'm all for it.
Re:ejb3 sounds like a hack (Score:1)
Just like the diff between java 1.4 and 1.5?
I didn't know there's a need to specify version when I compile a c/c++ program. Btw, I'm a SCJP and I think Java is great. But the annotations is not something inside the comment, but part of the language! Is this really needed?
Anyone who had used XDoclet and Hibernate would know that EJB 3 is not doing something new. The change is not technical, but commercial, in my opinion, t
Re:ejb3 sounds like a hack (Score:3, Insightful)
Also, I think annotations do belong with the class/method/field rather than in the comment. XDoclet is an excellent product but the only reason they overloaded the use of @tags in comments is because they couldn't put them in the actual source
Re:ejb3 sounds like a hack (Score:1)
Re: EJB 3.0 in a Nutshell (Score:2)