I have made a goal to learn how to program with J2EE on my Mac. I plan to get my Java Associate, Java Programmer and Java Developer Certificates. I have the books picked out and I think that I can get these three certificates on my own.
I also plan to study the book "The J2EE Tutorial, Second Edition". The problem with this book is that it has a CD with tools for Linux (which don't unpack on my Mac), Solaris, and Windows.
Also, I've been looking into the job market and have found that there seems to be a lot of Open Source Tools in use such as: Hibernate, JUnit, JBoss, Spring etc.
I plan to buy the book: "J2EE Open Source Toolkit : Building an Enterprise Platform with Open Source Tools (Java Open Source Library)" to assemble a toolkit of open-source tools that I can use on my Mac.
I understand that Sun is open-sourcing Java itself. What does this mean to me? Does it mean that I wouldn't have to assemble third-party open-source tools? Can I just use tools from Sun instead?
What would you all recommend to me for tools to make the leap from J2SE to J2EE?
Sun opens-ourcing of Java shouldn't make any difference to you. Nor will it make a difference to those libraries you mention. They are developed by third parties and will continue to be so. But just learning J2EE by itself is a huge task, and I would advise to put off trying to learn additional libraries/tools until a later time. You might want to pick certain J2EE technologies (e.g. Servlets/JSP and JDBC) to start with, and learn other, more rarely used, parts later as necessary (e.g. JMS, JavaMail, JMX etc).
The only tool you will need at the beginning is a J2EE server. Tomcat is sufficient if you don't use EJB; otherwise you'll need something like JBoss or Suns GlassFish.
By the way, my understanding of the SCJA is that it's so basic that it's not really meant for developers. If you're serious about developing, go straight for the SCJP.
Feel free to follow up with more specific questions.
I downloaded JBoss. I want to use EJB for the business logic so that when I get my applications done, we can develop a web-site using JSP and such to let customers view their account balance, AR statements, and order items online.
What is the difference between Hibernate and EJB 3.0? I understand that they will be related now.
Can I use UTF-16 in my CHAR fields in an SQL database? I want to be able to handle input from both the Mac, using MacRoman character set, and Windows, using the Latin 1 character set. (And maybe, in the future, be able to handle whatever character set that Linux uses), and be able to localize to other languages.
Handling Unicode in a DB usually is done by declaring the character encoding when the DB is created (mostly just ASCII or Unicode). Have a look at the documentation of the one you're using how that works. After that the client code needs to ensure that all characters passed to the DB are in that encoding. If the access is via a web site, and all pages are declared to use UTF-8, then you most likely won't need to worry about this, because the browser and Java handle all conversions internally.
If data gets into the app by other means (e.g. by reading a MacRoman-encoded file), then the encoding needs to be handled by the I/O code, just like it must be for any file I/O.
For questions about Hibernate vs. EJB you'd better head over to the ORM forum, where this kind of thing is discussed.