You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
| Online: | 15 Members of 9400 |
| Forum: Weld Users |
16. Nov 2009, 20:48 America/New_York | Link |
Hello everybody,
I am trying to learn Java EE right now but now I am stuck. Its not only about seam and weld but about Java EE at all. Perhaps you can help me!? I will list some statements (that are in my mind). Please verify them and complete or correct them.
- Java EE is only a collection of specifications (SPIs). - Not all Java EE specifications need a Java EE application server (like JSF that can also be used with tomcat). - Java EE 6 will be released next year - Java EE 6 will have a specification for dipendency injection that is inspired from Seam - Using Seam 2.x does not make sense in a Java EE 6 environment? - Weld is a framework like Seam, but it is official in Java EE 6? - Weld was formlery known as WebBeans?
So, what should I start learining. Java EE 5 and Seam? Java EE 6 and Weld? Is there any learning material about 6 and Weld right
Thanks in advance!
(disclaimer, my own opinions, not official. On a web forum, surprise, surprise)
Well, more of a specification of specifications ;-) It also tells a bit on how a compliant server should co-ordinate the parts
True. Some even work in SE (JPA etc)
It will probably be early next years before the first GA appservers will be around.
Yes. JSR-299, JCDI
Well, no. Mostly because Seam 2 will be obsoleted by Seam 3 which is based on JCDI (which is a part of EE 6)
Weld is the RI of JSR-299, which has influences from Seam (2). Seam 3 will continue to build on top of Weld
Yes
Weld, JPA 2, JSF 2, Bean Validation, EJB 3.1, Facelets...
Check out the Weld Reference Docs from the doc link to the left. It's a good place to start
If a man speaks in the forest and there is no woman around to hear him, is he still wrong?
It is a set of specifications that define mainly APIs, not SPIs.
Correct. In fact this is true of most of the important specs.
No, it should go final later this month. The EE 6 Reference Implementation is released at the same time.
Yes. It's called CDI. You're posting the Weld forum. Weld is the CDI reference implementation.
If you're starting a new project under EE 6, you should use CDI and JSF2 (or some other web framework, such as Wicket), which have much of the functionality of Seam2. When Seam3 comes along, take a look at the extra functionality it adds.
It is an implementation of the CDI specification, which is required in EE6.
Yes. Indeed, at one stage, CDI was known as Web Beans.
Unless you plan on putting your system into production inside the next 2-3 months, you should start learning CDI and Weld.
You also need to decide what web framework to use. This is the hard bit for most people. CDI defines the basic infrastructure you'll use to get the various kinds of Java EE components working together (and much more).
My personal view is that you should start out by looking at either JSF and/or Wicket, unless you're truly a beginner at this, in which case start with writing some plain servlets. If these options don't suit your needs, cast a wider net.
You'll also need a persistence solution. For most people writing EE 6 applications that means JPA2. There are at least three excellent implementations of this specification to choose from, including ours. You'll probably want to use JPA2 together with Bean Validation.
Once you've got a handle on CDI, JPA2, and whatever web framework you decide to use, take a look at EJB 3.1, and the more advanced functionality it offers for integrating with data stores and messaging, and managing asynchronicity.
Learn more about Weld...
I cleaned up my post a little and blogged it.
Learn more about Weld...
What about GlassFish? Don't they call it GA?
Learn more about Weld...
hey,
woohoo Gavin King created a blog entry because of my question. Sorry but I am a bit proud know :D
So, thank you vermy much Nicklas and Gavin. That helped me a lot and I will start looking for some good Java EE 6 material.
:-)
No, they will probably call it ;-)
But yes, you are correct, I misread the question as . Unless, of course, this release is historical and all parties involved produce bugfree releases from the start.
If a man speaks in the forest and there is no woman around to hear him, is he still wrong?
Wicket is not officially supported by Redhat/JBoss if you purchase a developer or prod support contract (with Enterprise Application Platform, or EAP) like we had at my previous shop. Neither is GWT or ICEFaces or any other framework that is not part of the EE JBoss stack. So you're forewarned (unless they changed their policies, I know they did unofficially support Apache httpd and mod_jk for JBoss cluster setups).
That being said, yes, a lot of people do seem to prefer Wicket to JSF 1.x (we'll see about Wicket vs. JSF 2.0).
Ok, so one problem with using EJB 3.0 components in Seam 2.x apps is the inability to do hot incremental deployment on EJB component changes via the special Seam classloader. Is this still an issue with EJB 3.1 and/or Weld in EE 6? I know JRebel is going to address this problem in a future release (hot deploy EJB interface changes). Plz correct me if I'm wrong but this problem stems from the dynamic proxying of types by the EJB container to or with container services for the EJB component.
In the future, is there any advantage to using Weld in an EE 6 app with the APIs you suggested above vs. Seam 3? Seam offers a lot of the services for POJOs that the EJB container offers like tx support, interceptors, etc. And with a WAR deployment, you get the added benefit of hot incremental deployment for all your POJOs (well, business components, helper classes, util classes, etc. and facelets; not entity classes, but then entity classes don't change very often anyways)...
Java EE 6 + RevCo = distributed rock stardom!
Arbi,
After some very concise posts by the previous forum members pitched appropriately to a beginner I see your post which, to a beginner, is going to be next to useless.
Peter.
Well, assuming that any beginner with Java EE X has experience with Java 5, then start here:
http://java.sun.com/javaee/6/docs/tutorial/doc/
Java EE 6 + RevCo = distributed rock stardom!