Skip to main content


Posted by daniel on July 15, 2004 at 9:29 AM PDT

Do complex problems require complex solutions

Bruce Tate spoke at our local JUG last night. He used Spring and Hibernate as examples of better, faster, lighter Java in contrast to the EJB/J2EE approach. Someone in the audience said that he felt that J2EE and EJBs addressed complex problems and that these often required complex solutions. Tate didn't disagree, but suggested that some of the lighter weight approaches allow you to layer on and easily configure as much complexity as is required. He suggested that the questioner try Hibernate as it is easy to learn.

The reply came that learning Hibernate, or a new framework, is more than learning how to code with it. The JUG member said that it would take time to learn what Hibernate itself does. Carsten Ziegler had just blogged on a similar problem in running down an error that he described as Two does not equal Two. He says, "imagine, you use numbers as keys. The contract is: 'we use the number 2 as the key'. And as a brave user you try to get an object using Long(2) but the person storing the information used Integer(2)
In my case, these comparisons were hidden deep in a custom library and it took me some hours to find out the problem." His post is a quick fun read and points out that we need to be careful when masking complexity.

By the way, if you are looking to get started quickly with a web application that uses some of these new technologies, check out Matt Raible's AppFuse project. To get you up and going even faster, Matt has also written an article that we feature today on called AppFuse: Start Your J2EE Web Apps.

He writes " In order for me to learn (and remember) how to integrate open source technologies such as Hibernate, Spring, Struts, and Ant/XDoclet, I created AppFuse. The beauty of AppFuse is you can actually get started with Hibernate, Spring, and Struts without even knowing much about them. Using test-driven development, AppFuse and its tutorials will show you how to develop a J2EE web application quickly and efficiently."

I always look for Craig Castelaz's blog entries because there is always an illustration along with his latest thoughts. In today's
Weblogs, he writes that Burried treasure can be found nearly anywhere. He writes about HttpClient from the Jakarta Commons and provides a code snippet demonstrating the use.

Stuart Sim writes on Open Source in Education saying "Open Source Java tools in support of education are coming fast and furious and it's a great thing to see. As an architect developer of enterprise software for the community, it has been a long time coming. The commercial vendors have long ignored this important sector which has in fact driven it to adopt the open source community."

In Also in Java Today , TheServerSidepresents an Interview with Rod Johnson and a related Discussion thread. "Rod Johnson talks about the Spring framework, its positioning and how its dependency injection compares to that of Hivemind and PicoContainer. He looks at what's different in the Spring Petstore, how Spring ties into Hibernate and how scripting might fit into Spring. Rod also gives his thoughts on AOP standardization, TDD, and talks about his new book, 'J2EE without EJB'."

In Part One of his JavaWorld series on JudoScript,
James Huang writes that " JDBC scripting is part of a grandiose idea: using the Java platform, in addition to Java's traditional role as an object-oriented language, to regularly perform practical computing tasks. The JudoScript language was designed for this idea." As with many of the recent scripting discussions, JudoScript aims to extend functionality beyond the world of Java developers.

In today's Forums on the Big Question, robilad asks What sort of compatibility are we talking about? "A) Compliance with API/VM/Language specs? B) Passing the TCK ? C) Same side-effects for all, even unspecified inputs? D) Interoperability? E) Equal serialization? F) Allowing code that uses unspecified sun.* packages to remain running? G) All of the above?"

Billksun writes that "open-sourcing non-core technologies allows Sun to remain in control of the compatibility of Java releases and also allows Java to expand its set of libraries and allow Java to become an overall more mature product areas that Sun cannot spare its resources for."

In Projects and Communities, Classpath gotchas can be distraction or disaster for complex projects. Which4J attempts to resolve confusion by determining where classes are being loaded from, including querying a particular ClassLoader for the first occurance of the class. This is one of the many useful projects in the Java Tools community.

Sun has open-sourced the Java 3D API on's Java Desktop Community. java3d is a parent project, containing the subprojects j3d-core, vecmath, j3d-core-utils and j3d-examples. A contributing to Java 3D page explains how to get involved with Java 3D development.

In today's News Headlines

Registered users can submit news items for the href=""> News Page using
our news submission
. All submissions go through an editorial review before being posted to the site. You can also subscribe to
News RSS feed

Current and upcoming
Java Events

Registered users can submit event listings for the href=""> Events Page using our href=""> events submission
form. All submissions go through an editorial review before being
posted to the site.

Archives and Subscriptions: This blog is delivered weekdays as the
Today RSS feed
. Also, once this page
is no longer featured as the front page of
it will be archived along with other past issues in the href=""> Archive.