ONJava.com -- The Independent Source for Enterprise Java
oreilly.comO'Reilly NetworkXML.comONLamp.comONJava.comOpenP2P.com
 Newsletters | Events | Jobs | API Map | Daily Recipe | OS Java Directory | java.net


  JSP and Servlets
  EJB Components
  Web Services
  Open Source
  Best Practices
  Java Security
  Java IDE Tools
  Java SysAdmin


  Feature Articles
  Java API Map
  Web Logs
  Book Excerpts
  OS Java Directory


GGZ-Java  May. 12, 2006

JTrac  May. 8, 2006

Dao-zero: implement your DAO intefaces  Apr. 28, 2006

DualRpc easy bidirectional RPC for GUI client to server  Apr. 25, 2006

ColoradoFTP - The Open Source FTP Server  Apr. 19, 2006

More Resources

 Java API Map


Java Enterprise in a Nutshell, Third Edition

Head First Design Patterns Poster

Eclipse IDE Pocket Guide

JBoss: A Developer's Notebook

Maven: A Developer's Notebook

Swing Hacks

Killer Game Programming in Java

Learning Java, Third Edition

Ant: The Definitive Guide, Second Edition

Spring: A Developer's Notebook

Java in a Nutshell, Fifth Edition

Jakarta Struts Cookbook

Head First Java, Second Edition

QuickTime for Java: A Developer's Notebook

AspectJ Cookbook

More Java Books



Java EE (Enterprise)

Java 2 Enterprise Edition (Java EE) is the server-side, enterprise Java application development platform and framework, which includes EJB, JTA/JTS, JMS, JMX, JCA and more.

Review/Preview: 2006 and 2007 in Java
By Chris Adamson
2006 will be remembered as the year that Sun open-sourced Java under the GPL, that EJB 3.0 finally shipped, and that Google surprised everyone with its Google Web Toolkit. But how will history record the results of these events? For the 2006 year-ender, ONJava editor Chris Adamson looks at the year's events through the lens of how they may play out in 2007. Dec. 20, 2006

Scaling Enterprise Java on 64-bit Multi-Core X86-Based Servers
By Dave Jaffe, Michael Juntao Yuan
Today's enterprise server--indeed, the environment--isn't what it was when Java was born. Slow networked machines have been replaced by fast, 64-bit multi-core servers that can house all your tiers in one box or even virtualize servers within the server. This has a significant effect on the design and deployment of your Java enterprise application, and Michael Yuan and Dave Jaffe show you how to get the most out of your hardware. Nov. 1, 2006

Don't Let Hibernate Steal Your Identity
By James Brundege
Hibernate has one set of ideas about how to make something unique, such as using a database sequence number as an ID. But this clashes with Java's need for implementations of equals() and hashCode() that determine identity for objects, even those that haven't yet made a trip to the database and thus can't have a sequence number. James Brundege has an option that should satisfy both Hibernate and Java. Sep. 13, 2006

How to Publish Multiple Websites Using a Single Tomcat Web Application
By Satya Komatineni
While the idea of mapping several names onto one Apache instance with VirtualHost directives is well known, what do you do when you're serving web apps with Tomcat? Satya Komatineni has both the code and the configs that you'll need to make this work. Aug. 30, 2006

What Is Geronimo?
By Kunal Jaggi
Geronimo is Apache's open source, Java EE-compatible application server, based on a flexible system of interchangeable components. This makes it ideal for a wide range of enterprise deployments. In this article, Kunal Jaggi shows you how to get started with Geronimo. Jul. 19, 2006

Standardizing Java Persistence with the EJB3 Java Persistence API
By Debu Panda
Dissatisfaction with entity beans as an "official" means of persisting Java objects to databases has prompted a number of "unofficial" approaches, such as the very popular Hibernate. Now EJB3 seems to have learned its lesson: its new Java Persistence API allows you to persist plain old Java objects (POJOs) with a minimum of fuss and just a few annotations. Debu Panda looks at how to put this new standard to work. May. 17, 2006

Configuration Management in Java EE Applications Using Subversion
By Swaminathan Radhakrishnan
Does your enterprise Java application need to store not only complex objects or documents but a history of changes to them? Many developers try to solve this problem with database wizardry, but it's probably a better option to hand the job over to a configuration management system that is built for the task. In this article, Swaminathan Radhakrishnan shows how you can implement requirements for change tracking by using a Subversion repository from your Java application, by way of the JavaSVN library. May. 3, 2006

JBoss Seam
By Thomas Heute
Many frameworks are perfectly sensible and well-designed on their own, but don't work particularly well when you try to combine them. Combining, for example, JSF and EJB 3.0 requires a lot of glue code, and adding another framework like JBoss BPM confuses things further. JBoss Seam is designed to provide common context for frameworks to share objects. Project leader Thomas Heute introduces Seam and what you can do with it. Mar. 15, 2006

J2EE Without the Application Server
By Guy Pardon
J2EE apps sound big because they usually are big, running on big enterprise-class application servers--servers that often provide a lot of functionality that you don't really want or need. In this article, Guy Pardon advocates a mix-and-match approach to combining Spring with best-of-breed persistence and transaction frameworks to build enterprise applications without a traditional J2EE app server. Feb. 8, 2006

Using Spring with JDO and Hibernate

Everyone knows about Hibernate, but what about Java Data Objects? Both of these object-relational persistence frameworks are well supported by Spring, and in this excerpt from Spring: A Developer's Notebook, Bruce Tate and Justin Gehtland show you the advantages of each and how to integrate them with Spring. Feb. 8, 2006

Twelve Best Practices For Spring XML Configurations
By Jason Zhicheng Li
Spring is powerful and popular, but in practice, the configuration files it needs for beans, dependencies, and services can quickly become confusing and hard to maintain. Jason Zhicheng Li offers some real-world advice on how to keep control of your configs. Jan. 25, 2006

Spring: Integrating iBATIS

iBATIS is one of the object-relational (OR) frameworks embraced by the Spring framework, and it's an ideal choice for those seeking a middle ground between full-blown OR and hand-written JDBC. In this excerpt from Spring: A Developer's Notebook, Bruce Tate and Justin Gehtland show how to integrate iBATIS with Spring. Jan. 18, 2006

An Exception Handling Framework for J2EE Applications
By ShriKant Vashishtha
One common hassle in J2EE development is exception handling: many apps devolve into a mess of inconsistent and unreliable handling of errors. In this article, ShriKant Vashishtha introduces a strategy for predictably collecting your exception handling in one place. Jan. 11, 2006

Using Dependency Injection in Java EE 5.0
By Debu Panda
Dependency injection, also known as inversion of control, is a programming technique being adopted by many programmers and frameworks, including the popular Spring framework. But using it in J2EE 1.4 requires a burdensome deployment-descriptor-based approach. Debu Panda shows how Java EE 5.0 provides relief in the form of annotations-based dependency injection. Jan. 4, 2006

Hibernate for Java SE
By Jason Lee
For many, Hibernate goes hand in hand with Java EE as part of their enterprise development strategy. But what if you need access to your data access objects outside of the EE container? Jason Lee offers some strategy for getting and using a Hibernate session from Java SE code. Nov. 16, 2005

JBoss Cache as a POJO Cache
By Ben Wang
Typical in-memory cache systems can trip you up in ways you don't expect, from mangled object relationships to overly expensive serialization operations. A POJO cache offers a simpler, lower-maintenance alternative. Ben Wang uses JBoss Cache to show how POJO caches work. Nov. 9, 2005

Test-Driven Development Using StrutsTestCase
By John Ferguson Smart
JUnit and DbUnit can help test your web application, but they're not ideal for testing Struts Actions. Fortunately, the StrutsTestCase framework exists to help you close this gap in your testing coverage. John Ferguson Smart looks at how it works and what it can do for you. Oct. 26, 2005

Constructing Web Services with the Globus Toolkit Version 4
By Birali Hakizumwami
Grid computing allows you to combine processing, storage, databases, and other resources across a network, hiding the details from callers. As Birali Hakizumwami shows, the Globus Toolkit makes this easier by exposing the grid as a normal web service. Oct. 19, 2005

Eclipse Web Tools
By Jeffrey Liu, Lawrence Mandel
The Eclipse Web Tools Platform (WTP) project aims to make web application development easier by attacking the problem from the tool side, providing Eclipse-based tools for creating and manipulating EJBs (optionally exposed as web services), data stores, and JSPs. Committers Jeffrey Liu and Lawrence Mandel introduce this new toolset. Oct. 5, 2005

iBatis DAO
By Sunil Patil
The J2EE Data Access Object pattern calls for encapsulating access to a data source behind an API, giving you the freedom to change implementations or use different persistence strategies for different operations. As Sunil Patil shows, the Apache iBatis DAO framework helps you develop such a strategy. Aug. 10, 2005

POJO Application Frameworks: Spring Vs. EJB 3.0
By Michael Juntao Yuan
Spring and EJB 3.0 are both reactions, in their own ways, to the complexity of EJB 2.1 and the complaints piled upon it. Both support developing with Plain Old Java Objects (POJOs) and give the framework responsibility for handling transactions, security, persistence, etc. But the two use substantially different approaches. In this article, Michael Yuan puts the two frameworks up against one another to see how they stack up. Jun. 29, 2005

An Ant Modular Build Environment for Enterprise Applications
By Les A. Hazlewood
Most Java developers already use Ant for their builds, but are you getting everything you could out of this tool? With a complex enterprise application, in which classes may be used in several tiers, it's important to control where the code lives and how it gets built, so you can build .jars with just the code needed for each tier. Les Hazlewood shows how this approach leads to faster builds and downloads, and even catches errant dependencies. Jun. 22, 2005

Constructing Services with J2EE
By Debu Panda
Web services are a popular means of deploying service-oriented applications, and the standards in J2EE 1.4 make it easier to develop services that are portable and interoperable. Debu Panda shows you how, and takes a look at how things will get easier in J2EE 5.0. May. 25, 2005

WS-Security in the Enterprise, Part 2: The Framework
By Denis Piliptchouk
Denis Pilupchuk continues his series on developing a WS-Security toolkit by developing a general framework to match the needs identified in part one and by starting to map WSSE features to Java objects. Mar. 30, 2005

Welcome to a New World: JBoss World 2005
By Chris Adamson
JBoss World, held in Atlanta on March 1-2, kicked off with announcements of new directions for the company and a roundtable of customers discussing the popular application server. This article offers a recap of the opening presentations. Mar. 9, 2005

Migrating a WebLogic EJB Application to JBoss
By Deepak Vohra
WebLogic and JBoss both offer powerful and popular EJB servers, but they're not completely compatible: an application deployed on one won't immediately deploy on the other. In this article, Deepak Vohra shows how to alter the deployment descriptors to make the migration. Mar. 9, 2005

Introducing JBoss Remoting
By John Mazzitelli
With JBoss World 2005 a week away, JBoss has introduced a new remoting framework. Before you say "another one?" John Mazzitelli hopes you'll take a look at JBoss Remoting, which rids you of RMI-style skeletons and stubs, and offers flexibility and extensibility on both the client and server sides. Feb. 23, 2005

Designing a Fully Scalable Application
By Amir Shevat
It's difficult, maybe impossible, to know up front how much or in what ways your application will need to scale. But by decoupling parts of the application, you can at least ensure that the scaling process can be kept modular. Amir Shevat shows how some sharable pieces of the MantaRay messaging system can allow your app to grow beyond one box. Feb. 16, 2005

An Introduction to Service-Oriented Architecture from a Java Developer Perspective
By Debu Panda
Service-oriented architectures offer a new way to think about building software applications, with coarse-grained pieces of functionality split out into "services" that communicate with standardized, widely understood interfaces like XML and SOAP. In this article, Debu Panda shows you how to design and connect SOAs. Jan. 26, 2005

Software Infrastructure Bottlenecks in J2EE
By Deepak Goel
Sometimes you can throw more CPUs and memory in a box and your web application doesn't get any faster. This can happen when the bottleneck is not in the hardware but the software; specifically, your application server. Deepak Goel looks at what this looks like in terms of performance characteristics and what you can do about it. Jan. 19, 2005

Distributed Enterprise Messaging with MantaRay
By Amir Shevat
Java Messaging Service (JMS) is a much-used system for distributed enterprise applications, but many implementations use a "broker" approach that creates bottlenecks. MantaRay implements the JMS API through a peer-to-peer approach that, as Amir Shevat reports, provides some significant advantages. Dec. 8, 2004

Session Replication in Tomcat 5 Clusters, Part 1
By Srini Penchikala
A web application running on a single server is completely lost if the server goes down. But with a cluster, user sessions can be replicated across servers, so that the system stays up even if one server fails. Srini Penchikala presents Tomcat 5's handling of this feature. Nov. 24, 2004

Extending Struts
By Sunil Patil
With so many web application frameworks available, there's little point reinventing the wheel, especially when Struts offers remarkable extensibility. Sunil Patil introduces the three basic means of extending Struts to achieve custom web application behavior. Nov. 10, 2004

Memory Contention in J2EE Applications for Multiprocessor Platforms
By Ramchandar Krishnamurthy, Deepak Goel
You can scale an enterprise app on a single box by adding CPUs, right? Yes--to a point. As Deepak Goel and Ramchandar Krishnamurthy have discovered and documented, the battle for access to memory from threads on the different CPUs creates a memory contention that, in time, becomes a bottleneck. In this article, they document the phenomenon and suggest some ways to improve the situation. Nov. 10, 2004

How to Use JMS with PHP
By Amir Shevat
Java Messaging Service (JMS) is a great enterprise messaging architecture, but what if you have have a web application written in a non-Java language that wants to participate in JMS? Amir Shevat shows how PHP can be made to work with JMS. Oct. 27, 2004

XML Messaging Using JBoss
By Benoit Aumars
Simple communication in an enterprise system is possible through various schemes, but not all of them answer the question of coordination. Benoit Aumars presents a hypothetical case study that shows how generating and sharing information in XML is made easier with Java Messaging Service (JMS) and Java Management Extensions (JMX). Oct. 13, 2004

Using Timers in J2EE Applications
By Debu Panda
J2SE gained support for scheduled tasks in 1.3, and J2EE 1.4 provides an enterprise equivalent, with transactional, scheduled callbacks provided by application containers. Debu Panda introduces J2EE timers by way of an EJB that gets scheduled services. Oct. 13, 2004

Monitoring Session Replication in J2EE Clusters
By Fermin Castro
Session replication is critical for running enterprise-class application servers, but tracking down problems in J2EE clusters can be difficult. Fermin Castro introduces techniques for monitoring and measuring how well your cluster is replicating sessions. Sep. 8, 2004

Designing J2EE Applications for Real-Life Clustered Environments
By Anil Sharma
What works on a single server can crash and burn in a cluster. In this article, the authors draw from their practical experience to list and discuss some critical considerations when building J2EE applications so that they can be deployed in a clustered environment without requiring any code changes. Jul. 14, 2004

Using a JMS Provider with MDBs via the J2EE Connector Architecture
By Debu Panda
Message-Driven Beans (MDBs) get a big boost in J2EE 1.4 via integration with the J2EE Connector Architecture (JCA), which opens up interesting possibilities to use messaging to and from legacy systems. Debu Panda shows how this can be accomplished. Jun. 23, 2004

Performance Analysis of J2EE Applications Using AOP Techniques
By Ramchandar Krishnamurthy
It's tricky to profile a J2EE application to find performance bottlenecks; it's even trickier to do this with a production system, without introducing instability or new slowdowns. Aspect-Oriented Programming (AOP) offers a means of injecting new code, such as performance metrics, into existing code, without re-compiling. Ramchandar Krishnamurthy shows how this can be done. May. 12, 2004

Clustering and Load Balancing in Tomcat 5, Part 2
By Srini Penchikala
The latest version of Tomcat provides clustering and load-balancing capabilities for scalable, high-available systems. In part two of this series, Srini Penchikala sets up a Tomcat cluster and assesses its performance. Apr. 14, 2004

Clustering and Load Balancing in Tomcat 5, Part 1
By Srini Penchikala
The latest version of Tomcat provides clustering and load balancing capabilities for scalable, highly available systems. In part one of this series, Srini Penchikala looks at architectural factors to consider in such a system and how Tomcat implements them. Mar. 31, 2004

Bug Prevention with Code Generation: A J2EE Case Study
By Francesco Aliverti-Piuri
If you had to drill 12,000 holes, would you prefer a manual drill, or its automated equivalent? Francesco Aliverti-Piuri describes using code generation for discovering bugs in a J2EE example. Mar. 31, 2004

J2EE Connector Architecture
By Anthony Lai, Jyotsna Laxminarayanan
This article looks at some of the challenges of legacy system integration, then introduces the J2EE Connector Architecture (J2EE CA) and explains how it can significantly reduce the problems of integrating your legacy system. It also offers a comprehensive example of how to use the current version of J2EE CA to access a common transaction-processing platform from a Java 2 Enterprise Edition (J2EE) platform application. Mar. 24, 2004

MVC Heresy with SQLTags
By Steve A. Olson
When the "right" way is more than you need, is it wrong to do what works? Steve A. Olson introduces the SQLTags toolkit, which takes database access out of its traditional tier and puts it directly into JSP tags. Mar. 3, 2004

Configuring JBoss 4.0 JDBC Connectivity
By Deepak Vohra
JBoss uses the HypersonicDB by default, but with a few configuration changes, it can use any JDBC-equipped database. Deepak Vohra shows how to use Oracle, Sybase, MySQL and other databases with JBoss. Feb. 25, 2004

Security in Struts: User Delegation Made Possible
By Werner Ramaekers
Struts may not have an all-encompassing security scheme, but what it does offer is extensibility. Werner Raemakers looks at how to extend Struts' security by allowing one group of users to delegate permissions to others. Feb. 18, 2004

Object Caching in a Web Portal Application Using JCS
By Srini Penchikala
One way to improve server-side performance is to cache data instead of generating it over and over again. Srini Penchikala takes a look at how the Java Caching System makes this possible. Dec. 23, 2003

Page Navigation in JavaServer Faces
By Budi Kurniawan
Any web application with more than one page needs some sort of navigation. Where does the user go when he logs in? Where does he go if his password is incorrect? JSF provides an easy-to-update page navigation model in its Application Configuration file. Budi Kurniawan explains how it works. Oct. 29, 2003


J2EE 1.3 Tutorial  Dec. 3, 2001

Web Development with JSP  Oct. 9, 2001

J2EE Component Patterns Tutorial  Sep. 7, 2001

Java OSS Service Activation API  Jul. 2, 2001

OSS Quality of Service API  Jul. 2, 2001

More Resources

More Events

About ONJava.comContact UsPrivacy PolicyMedia Kit
Copyright © 2000-2006 O’Reilly Media, Inc. All Rights Reserved.
All trademarks and registered trademarks appearing on the O'Reilly Network are the property of their respective owners.
For problems or assistance with this site, email