-
1. Re: learining Java EE; confused now
nickarls Nov 16, 2009 9:12 PM (in response to testuserman)(disclaimer, my own opinions, not official. On a web forum, surprise, surprise)
Java EE is only a collection of specifications (SPIs).Well, more of a specification of specifications ;-) It also tells a bit on how a compliant server should co-ordinate the parts
Not all Java EE specifications need a Java EE application server (like JSF that can also be used with tomcat).True. Some even work in SE (JPA etc)
Java EE 6 will be released next yearIt will probably be early next years before the first GA appservers will be around.
Java EE 6 will have a specification for dipendency injection that is inspired from SeamYes. JSR-299, JCDI
Using Seam 2.x does not make sense in a Java EE 6 environment?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 a framework like Seam, but it is official in Java 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
Weld was formlery known as WebBeans?Yes
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 rightWeld, 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
-
2. Re: learining Java EE; confused now
gavin.king Nov 16, 2009 9:35 PM (in response to testuserman)
- Java EE is only a collection of specifications (SPIs).It is a set of specifications that define mainly APIs, not SPIs.
- Not all Java EE specifications need a Java EE application server (like JSF that can also be used with tomcat).Correct. In fact this is true of most of the important specs.
- Java EE 6 will be released next yearNo, it should go final later this month. The EE 6 Reference Implementation is released at the same time.
- Java EE 6 will have a specification for dipendency injection that is inspired from SeamYes. It's called CDI. You're posting the Weld forum. Weld is the CDI reference implementation.
- Using Seam 2.x does not make sense in a Java EE 6 environment?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.
- Weld is a framework like Seam, but it is official in Java EE 6?It is an implementation of the CDI specification, which is required in EE6.
- Weld was formlery known as WebBeans?Yes. Indeed, at one stage, CDI was known as Web Beans.
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 rightUnless 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).
- You could use plain servlets and JSP, which in EE 6 both include out-of-the-box CDI integration. However, most people prefer to use something with more features. But honestly, if you're new to enterprise Java, it's not a bad place to start. The latest servlet spec lets you use annotations, which is a big step forward in usability.
- JSF2 is included as part of the platform, and is integrated with CDI out of the box. Many people find JSF difficult to learn. We believe that for some kinds of applications, it pays off in the end.
- An option we recommend is Wicket. Wicket is an alternative to JSF that is easier to learn. Weld comes with Wicket integration.
- There are many other possibilities including about a thousand frameworks which are basically alternatives to the servlet API. Struts2 and Stripes seem like popular options. I don't find any of these kinds of frameworks very interesting or sexy, but they're usually easy to use. It should be very relatively easy to integrate any of them with Weld.
- A final option worth mentioning is GWT. GWT is an entirely different beast, with its own Java to JavaScript compiler. It's great for certain kind of application. We should have GWT integration for Weld available very soon.
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.
-
3. Re: learining Java EE; confused now
gavin.king Nov 16, 2009 9:50 PM (in response to testuserman)I cleaned up my post a little and blogged it.
-
4. Re: learining Java EE; confused now
gavin.king Nov 16, 2009 9:52 PM (in response to testuserman)
It will probably be early next years before the first GA appservers will be around.What about GlassFish? Don't they call it GA?
-
5. Re: learining Java EE; confused now
testuserman Nov 16, 2009 10:50 PM (in response to testuserman)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.
:-)
-
6. Re: learining Java EE; confused now
nickarls Nov 17, 2009 7:27 AM (in response to testuserman)No, they will probably call it
v3 Final
;-)But yes, you are correct, I misread the question as
When will the major players have appservers that survive some production use
. Unless, of course, this release is historical and all parties involved produce bugfree releases from the start. -
7. Re: learining Java EE; confused now
asookazian Nov 17, 2009 5:24 PM (in response to testuserman)
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.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
standard
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).
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.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
inject
ordecorate
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)...
-
8. Re: learining Java EE; confused now
peterfry Jan 13, 2010 2:07 PM (in response to testuserman)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.
-
9. Re: learining Java EE; confused now
asookazian Jan 13, 2010 5:43 PM (in response to testuserman)Well, assuming that any beginner with Java EE X has experience with Java 5, then start here: