I've been doing "plain old java objects" programming for 10 years now, with Swing and JDBC, and I consider myself pretty good at it. But I start a new job in two weeks where they use JBoss, and I'd like to get a heads up and start learning all this stuff before I start. What are good resources? On-line tutorials, books, e-books, anything you can suggest, especially ones that don't try to teach you the basics of plain Java first.
Learning Java EE, jboss, etc
For quick getting up to speed, you really need to master EJBs and JSP/Servlets. Those are the fundamentals of Java EE technology. The Head First series on EJBs and JSP/Servlets is a good start for what has usually been a mind-numbingly complex framework. Beware that recent Head First editions have switched to teaching the simpler annotation-based Java EE 1.5 frameworks. While the newer version of Java EE is simpler and better, you probably need to know the previous versions (Java EE 1.4 = EJB 2.1 and Servlets 2.4).
At this point, you've only dipped your foot in the water. I would spend a lot of time over the next year, reading up on Java EE technologies and more generally enterprise application development for client-servers.
a) You absolutely must understand data modeling, and databases. The best I've seen are by Chris Date, Steve Feuerstein (if you're using Oracle) and Joe Celko. The better Java EE developers can keep up with their DBAs in technical discussions about the database.
b) You do need to understand how JDBC works, and why ORM tools like iBatis, Hibernate and Toplink came about. Assuming you know how to write a JDBC DAO, then be sure to understand how Hibernate works.
c) You should understand how the layered architecture of a Java EE application. Core Java EE Design Patterns has prescribed typical practice, and it's highly likely that your upcoming project will stick to those patterns. That said, you should also understand alternative points of view on architecture. I've found Martin Fowler's Patterns of Enterprise Application Architecture and Rod Johnson's Expert One-On-One Java EE Design and Development to be valuable. The ideas in the latter became the Spring framework, and has settled into mainstream for how many J2EE developers prefer to develop their apps.
d) Then learn some of the frameworks that have sprouted up around the Java EEE ecosystem. While it's a philosophical question why there are so many frameworks, and which one is better, focusing on the frameworks your employer is specifically using is more than enough.
A couple of answers come to mind:
if "plain old java" is what you're used to, you'll probably need a grounding of plain old j2EE more than JBOSS specific stuff. I'd start with the sun tutorials, but being familiar with the general structure of servlets, the servlet api, is base.
as application servers go, JBoss is (my biased opinion only) insanely large and complicated. Think "launching the space shuttle" and you won't be far off. A million services. It is specifically noted for having an unusual class loader structure (although this may have changed since I used it last, about 1 -2 years ago), among other things. It also has an extensive list of nice services, like a JMX base (management configuration beans) although documentation is likely to be spotty, as support is a paid service.
Best suggestion- familiarize yourself with the J2EE libraries. Next would be to get a basic site running in JBOSS. More specific stuff that you might want to do is likely to be very specific to their installation (e.g. there's a JMS implementation available in there but they may not be using it) as I've seen people use it for nothing but a servlet container.
Sounds like me (though definitely not with 10yrs of exp). I started with Head first series for servlet/jsps. I already knew what they were meant for. If you have a good grasp of design patterns and OOPS, Ejbs and other resources would be a piece of cake, Concentrate on why they are, how and what to do can wait. App servers are a different beast, however, going through the admin manuals helped clarify quite a few things. SSL/Certificate stores/Clustering can come at the end of the list. You would also like to learn about ORM tools like Hibernet; alternative view technologies like Wicket, Tapestry etc; Containers like Spring and libraries like struts all can be learnt slowly. The best practices and review posted all over internet definitely help.
The choice of what order to follow, shouldn't be that difficult, as the work place dictates the technologies most of the time.Just remember, J2EE is a bunch of specifications and frameworks are essentially supporting libraries that are targeted to a specific group. It is the designer/developer who holds the key