Tom Marrs

Author
+ Follow
since Sep 20, 2000
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Tom Marrs

Javid and Peter,
How are you doing JavaEE 5 Annotations for EJB 3 and for Web Services? Are you using the JBoss Eclipse IDE (I know the name is old, but I don't know the new name for this)? OR are you using some other Eclipse plug-in?

Tom Marrs
15 years ago
Javid and Peter,
Are you covering Seam in your book? How does Seam fit in with a JavaEE architecture? Is Seam mature enough to start using for real-world development?

Tom Marrs
15 years ago
Javid and Peter,
Are you covering JBoss 5.0 in your book?

Tom Marrs
15 years ago
Val,
You can find the Hibernate version in your JBoss installation.
Go to $JBOSS_HOME/server/default/lib and open up hibernate3.zip.
Then, open the META-INF/MANIFEST.MF file and you'll see the exact Hibernate version.

In JBoss 4.0.3SP1, the Hibernate version is Hibernate 3.1rc2

Tom
18 years ago
All,
We've just posted a new zip and tar file for the book's code examples at:
http://www.jbossatwork.com/downloads.html

You can also use our Subversion respository if you'd like (just follow the link on the page). If you have an IDE, use this URL to connect to the repository: http://www.jbossatwork.com/repos/jaw/jaw/trunk/

We've taken care of the previously missing ant tasks (colddeploy), and made some bug fixes per reader comments.

When we wrote the book, we only had JBoss 4.0.2, but some of the Hibernate JARs were moved in JBoss 4.0.3. So, please check the README.TXT file to see how to use our code under JBoss 4.0.3.

As always, if you have problems, please send them to us at:
tom@jbossatwork
scott@jbossatwork

Thanks.

Tom and Scott

P.S. Yes, I'm finishing up article #2.
18 years ago
Will,
The developers notebook is a good place to start, too. I wish you the best with it.

Tom
18 years ago
I've run JBoss on Windows and Linux and (like Paul said), there were no issues.

The only difference is the run script that you use. Go to $JBOSS_HOME/bin
On Windows, do the following: run.bat
On Linux/UNIX, do the following run.sh

That's it. After all, Java is cross-platform.

Tom
18 years ago
MySQL just came out with a new release - it looks like they now have stored procedures and decent transaction support. I'm sure MySQL has limitations, but I don't know where you'd find an article that covers this.
Maybe you could google for "Open Source Database" and find something that way.

Yes, Hypersonic will work with Hibernate.

Tom
18 years ago
Hypersonic is not meant for production. It doesn't scale well with multiple users. You're much better off with MySQL, Postgres, Oracle.
18 years ago
Without looking at a stack trace, it's a little hard to tell.
So, here's my best guess - I don't think your web app can find the "queue/testQueue". It looks like you have a JNDI naming issue. If you could post the stack trace, maybe I could help you further.

Tom
18 years ago
Right now it's just a rumor. JBoss will neither confirm or deny it.
I'm not sure how it would impact JBoss, but I hope it wouldn't push JBoss to be Oracle-centric.

If Oracle bought JBoss, what happens to OC4J/Oracle 9iAS? Do they dump those products or sell them alongside of JBoss?

Tom
18 years ago
Joshua,
I don't think EJB 3.0 will decrease the interest in Spring. EJB 3.0 took most of its ideas for simplification from Spring and Hibernate.

Even though I like EJB 3.0, I'm still moving to Spring because:
1) Spring's IoC is much more flexible and easier to use than EJB 3 Dependency Injection.

2) Spring has great API wrappers for JDBC, JNDI, JMS, Hibernate, and Class Loading.

3) Spring has a good Exception Handling strategy, and EJB/J2EE doesn't.

4) You can't test Stateless Session Beans outside the container, but you can test Spring Beans outside the container.

5) Spring/Hibernate is enterprise-class because of its support for CMT transactions and connection-pooling.

6) If you need JMS and an asynchronous JMS listener, you still don't need EJBs or a full J2EE container. You can use ActiveMQ as your JMS provider, and Jencks provides Message-Driven POJOs (an MDB substitute).

7) Spring is still simpler to deploy - you only need a WAR. If you have a web app that uses EJBs, then you still need an EAR that contains a WAR and an EJB JAR.

So with Spring, you have all the above benefits and no real drawbacks, plus you can run your code inside or outside the container. For test and production, you could run Spring inside of Tomcat, which has a much lighter weight footprint than a full-blown J2EE application server.

Tom
18 years ago
Satou,
I'll answer your questions first. You could be right that Spring will definitely take much of the marketplace away from EJB and JBoss (and the other J2EE application server vendors, for that matter).

The people who never liked EJB in the first place will just move to Spring.
Many of the companies who've invested lots of money into J2EE application servers and EJB development will just move to EJB 3.0 because they don't want to re-architect.

But there will also be companies that will be happy to move to Spring because development and maintenance will be much less expensive.

I'll answer Joshua's question in my next post.

Tom
18 years ago
We used JBoss 4.0.2 because of its full support for Hibernate 3.x.

Since the EJB 2.1-style Entity Bean model is gone as of EJB 3.0, we didn't cover Entity Beans. We felt that covering Hibernate was sufficient for this because EJB 3.0-style Entity Beans will look very similar to Hibernate Persistent classes.

We did cover EJB 2.1 Stateless Session Beans (SLSBs) and Message-Driven Beans (MDBs). We show the bean code and interfaces along with the J2EE and JBoss deployment descriptors. We also talk about when to use EJBs and when not to use them. We cover CMT-style transactions, too. Since there are so many programming artifacts, we use XDoclet to the generate the SLSB's Home and Component Interfaces along with the deployment descriptors. For JMS, we show how to write a client, an MDB, and an MBean descriptor for the JMS Queue.

In the Web Services chapter, we show how to expose one of the Stateless Session Bean's methods as a Web Service. We show all the artifacts (Service Endpoint Interface, webservices.xml, WSDL, and so on), and then we show how to automate/streamline the deployment process with Ant, XDoclet, and wscompile (from JWSDP).

Tom
18 years ago
Why would you want to use a custom Class Loader? I look a Class Loaders as black magic, and I don't mess with them any more than I need to. I just use the Thread Context Class Loader to load Properties files and other resources from CLASSPATH. Then, I encapsulate the messy code in utility classes.

Tom
18 years ago