Application Servers

• Application Server Reviews
• Articles/Papers

• Comparison

• Comparison Matrix
• EJB Comparison Project

• Articles

• Customized EJB security in JBoss
• Integrate security infrastructures with JBossSX

• Documentation

• Get Started with JBoss Application Server
• JBoss 2.4+ on-line manual
• Logging Guide

• Tutorials

• Beginning EJB programming using JBoss
• JBoss 3 step-by-step tutorial
• Using container-managed persistence with JBoss

• JOnAS in Open Source
• Next Generation Application Server (NGASI)
• Netscape Application Server
Oracle Application Server

• Articles

• Best Practices for Availability of Java Applications using the Oracle 9i Internet Application Server
• 9i Best Practices

• Orion
• PowerTier @Persistence

• PowerTier for EJB Object Modeling Tools Guide
• PowerTier for EJB Programming Manual

• Pramati Server 3.0, certified J2EE 1.3 app server
• Resources

• Application Servers @Google
• Application Server Matrix
• appserver zone
• Open-source app servers

• Sybase Enterprise Application Server
WebLogic

• Articles/Papers

• Creating a thread dump
• Developing WebLogic Server Applications
• Servlets in Apache Tomcat and BEA Systems' WebLogic Server
• Using WebLogic Multitier JDBC Drivers
• whitepapers

Integration

• Books

• BEA WebLogic 7.0 Application Server Deployment and Administration Handbook
• J2EE Performance Testing with the BEA WebLogic Server: presentation; author's website

• Products

• WebLogic Express - provides applets and applications database access

• htmlKona - Java objects for programmic generation of dynamic HTML documents

• WebLogic Integration: eLink

• Resources

• BEA Weblogic Server EJBs 1.1

WebSphere Application Server

• Articles

• A Quick Guide for Migrating to WebSphere Application Server V5
• Best Practices for an Application Development Infrastructure, whitepaper
• Creating Extended Messaging Applications for WebSphere Application Server Enterprise V5
• Development Best Practices for Performance and Scalability, WebSphere whitepaper
• Developer and WebSphere Application Server
• Getting Started with JRas: Adding Trace and Message Logging to WebSphere Applications
• How to use WebSphere and JUnit to prevent programming bugs
• Migrating to an EJB environment in WebSphere Application Server
• Monitoring Connections in a WebSphere Environment
• Proactive Application Monitoring
• Reusing WebSphere Business Component Composer Business Integration Flows with the Java 2 Connector Architecture

• Books

• Building Multi-tier Solutions for WebSphere Enterprise Applications, Redbook
• Design and Implement Servlets, JSPs, and EJBs for IBM WebSphere Application Server, Redbook
• Edge of Network Patterns, Redbook
• EJB Development with VisualAge for Java for WebSphere Application Server, Redbook
• Professional IBM WebSphere 5.0 Application Server

• documentation
• Resources

• WebSphere Application Server Zone, information roadmaps
• WebSphere Best Practice Zone
• WebSphere Developer Domain
• WebSphere Developer Technical Journal

• Tutorials

• Training and Tutorials for WebSphere
• VisualAge for Java and WebSphere Tutorials
• WebSphere Training

Articles: @Developer.com; @JavaWorld

• Applications

• A Java case study: The power of J2EE
• Add XML to your J2EE applications
• eMobile End-to-End Application using the J2EE - Part I, II
• Extending the Reach of Enterprise Applications With Transcoding and Machine Translation
• J2EE technologies for the stateful network
• Resource Management System: a J2EE Sample Application
• US Department of Energy signs on to J2EE
• Working with J2EE Application Clients

• App Server

• Serve it up with J2EE 1.4 - Extending the App Server using JCA 1.5 and EJB 2.1

• Architecture

• A Nine-Step Process for Deriving Infrastructure Architecture from a J2EE Technology Application Architecture
• J2EE Reference Architectures: A Foundation for Robust J2EE Systems
• MDA from a Developer's Perspective
• Webtop Architectures for J2EE

• Basics

• A walking tour of J2EE
• Introduction to the J2EE Platform
• Overview
• What Is the JavaTM 2 Platform, Enterprise Edition?

• Business Rules

• Business process automation made easy with Java: Part 1, 2

• Database

• Accessing Federated Databases with Application Server Components

• Deployment

• Behind the Scenes of J2EE Deployment
• Deploying multiple applications in J2EE 1.2
• Get the app out, J2EE application assembly and deployment process
• Manually Creating a Simple Web ARchive (WAR) File

• Design

• Choosing the Right EJB Type: Some Design Criteria
• Develop n-tier applications using J2EE
• Frameworks save the day
• J2EE project dangers!
• One, two, three, or n tiers?

• Development

• Build to Spec!
• e-business on demand: A developer's roadmap
• Roll your own distributed management solution
• Step into the J2EE architecture and process
• Ten Best Practices for J2EE Development

• Internationalization

• Building Internationalized J2EE Web Applications for Disparate Clients
• Internationalize JSP-based Websites

• J2EE Pathfinder column

• J2EE technologies for the stateless network
• Persistent data management, Part 1

• Optimization

• Optimizing Java Applications

• Oracle Magazine: Special J2EE issue
• .NET

• Choosing Between the .Net and J2EE Frameworks
• Comparing J2EE With .NET
• Decide Between J2EE and .NET Web Services
• Distributed Web Application Development: A Comparison of .Net and J2EE
• J2EE vs. Microsoft.NET, A comparison of building XML-based web services (pdf)
• J2EE and .NET: Can We Live Together?
• J2EE and .NET from a Security Standpoint: Languages
• J2EE and .NET Security
• J2EE versus .Net: Part 1, 2
• Java 2 Enterprise Edition (J2EE) versus The .NET Platform: Two Visions for eBusiness
• Microsoft .NET vs. J2EE: How Do They Stack Up?
• .NET Interop. with J2EE
• .NET versus J2EE Web Services: A Comparison of Approaches
• Picking a Winner: .NET vs. J2EE
• The great debate: .Net vs. J2EE
• The Management of J2EE (and .NET) Applications

• Patterns
• Performance
• Persistence

• Simplifying Domain Model Persistence in a J2EE Application using JDO

• Portability

• Portability Verification of Applications for the J2EE Platform

• Presentation

• Enhance your J2EE presentation layer

• Security

• J2EE Form-based Authentication
• Securing systems: Using Java technology in high-stakes systems

• Scalability

• Scaling J2EE Technology Applications Based on Application Infrastructure Techniques - Part 1, 2, 3, 4

• Score big with JSR 77, the J2EE Management Specification
• Value Objects

• Coarse Grained BMP beans with Dependent Value Objects
• Dynamic Value Objects using CMP2 and XML
• How to Implement Collections of Value Objects for MVC Apps with BC4J
• Using Value Objects

• WebServices
• Whitepapers

• Ace: A Better Way to Build Enterprise Applications
• JCrew.com Emerges as a Benchmark in the Evolution of the J2EE Platform

• Wireless
• XML

• Blueprints

• Designing Enterprise Applications with the J2EE Platform, 2nd Ed
• The J2EE Blueprints Design Guidelines: Best Practices for Designing Enterprise Applications @JavaOne 2000
• J2EE Blueprints Digest

Books

• Applying Enterprise JavaBeans: Component-Based Development For The J2EE Platform
• Building Java Enterprise Applications Volume I: Architecture; Ch 2, Blueprints, Ch 5, Advanced Entities
• CodeNotes for J2EE (free to JavaLobby members)
• J2EE and XML Development (free)
• Java Enterprise Best Practices
• Java Enterprise in a Nutshell; Ch 5, Java Servlets; Ch 14, IDL Reference
• Java for the Web with Servlets, JSP, and EJB: Ch 1, The Servlet Technology; Ch 2, Inside Servlets; Ch. 3, Writing Servlet Applications; Appendix A: Tomcat Installation and Configuration

• CAS (Client Access Service) COM Bridge
Development Environments

Eclipse, an open extensible IDE

• Articles

• Eclipse IDE for J2EE 1.3 Development (Tomcat 4.x, JBoss 3.x, MySQL 3.x)

• Plug-ins

• Easy Struts
• EASIE, user controls for managing an application server instance (WebLogic, JBoss, WebSphere, Orion/Oracle 9iAS)
• Improve Struts Configuration File Editor
• Lomboz, J2EE development environment
• SolarEclipse, XML and Web app development
• Sysdeo Tomcat Launcher
• STRECL, for Struts development
• XtremeJ Management Console, monitors the JMX based services within a JMX-enabled application server

• MetaCoder, for creating custom code generators with XML/XSLT meta-code
WebSphere Studio Application Developer

• Articles

• Build JCA-compliant resource adapters
• Creating and Testing Message Driven Beans using WebSphere Studio Application Developer 5.0
• Developing and Deploying Modular J2EE Applications with WebSphere Studio Application
• Developing and Testing a Complete "Hello World" J2EE Application
• Developing portlets that use JavaBeans and JSP components
• Integrating EJBs into J2EE apps in WebSphere Studio
• Integrating Message-Driven Beans into Enterprise Applications with WebSphere Studio, Part 1, 2, 3
• Using the Java Cryptography Extension in WebSphere Studio Application Developer 4.03
• Using the Java Cryptography Extension in WebSphere Studio Application Developer V5
• Using WebSphere MQ in WebSphere Application Server Version 4.x, Part 1, 2
• Writing Java Message Service programs using WebSphere MQ and WebSphere Studio Application Developer: Part 1, 2

• Plug-ins

• Building Applications with the WebSphere Studio Visual Editor and Java Beans - Part 1
• Web Application Development Support Tool, provides design-time support for Web applications based on Struts

• Tutorials

• Building Applications with the WebSphere Studio Visual Editor and Java Beans
• Struttin' your stuff with WebSphere Studio; Part 2: Tiles
• Using Data Access Beans in WebSphere Studio
• Using JSPs and custom tags within VisualAge for Java and WebSphere Studio

• MyEclipse Enterprise Workbench

• DTDs: 1.2; 1.3
• Documentation

• API documentation
• Developers Guide
• Overview
• Simplified Guide to the J2EE Platform

Enterprise Application Integration (EAI)

• Articles

• Enterprise Application Integration: The Problem that Won't Go Away
• Enterprise application integration using J2EE
• Integrate enterprise applications with Web Services and J2EE
• Stretching middleware
• Web Services: A Fit for EAI: Part 1, 2
• Web Services and J2EE connectors for B2B integration

• Books

• Integrating with the Enterprise Information System Tier from the J2EE Blueprints
• Professional J2EE EAI: Ch. 3 - The J2EE Platform for EAI; Ch. 9 - Business-level Integration
• So many J2EE books, so little time

• Resources

• EAI Journal

• Tools

• Sunopsis

• Java Application Verification Kit (AVK) for the Enterprise
Projects/Products

• DesignViewer, generates a visual model from the source code (free)
• FireStorm, DAO code generator for persistence tier
• OpenSymphony, a suite of components for rapid development of enterprise class Java applications

• OSCache, a J2EE caching system
• SiteMesh, a web-page layout system and web-application integration system
• WebWork, a J2EE HMVC framework

• Out-of-theBox for Java Developers, 50+ open source projects
• Roller Weblogger: Building an Open Source J2EE Weblogger
• Spif (Simplest Possible Infrastructure Framework)
• UploadBean
XDoclet

• Articles

• Using XDoclet: Developing EJBs with Just the Bean Class

• Resources

• Architecture
• documentation
• EJB 2.x CMP/CMR and EJB QL with XDoclet
• Example: Invoking the JDO Metadata generator from an Ant build.xml file
• FAQs
• Forum
• xdoclet-user archive

• Tutorials

• EJB XDoclet / Resin Tutorial

Resources

• A Guide to J2EE APIs and reference implementations
• Enterprise Developer
• Enterprise Java @JavaWorld
• Enterprise Java Archives
• Enterprise Java Technologies Newsletter @JDC
• Enterprise Java Technologies Tech Tips @JDC
• exolab.org
• HostJ2EE, expertise to manage and host J2EE application services
• J2EE Advisor
• J2EE Compatibility Test Suite (CTS)
• J2EE Downloads & Specifications
• J2EE-Interest archive
• J2EE news @Flashline.com
• J2EE Olympus
• J2EE Technology Center
• J2EE vs .NET

• Compare Microsoft .NET to J2EE Technology
• J2EE-.NET @JDance

• Java in the Enterprise Newsletter Archive
• jMiddleware.com: J2EE, J2EE Links
• Learn More About J2EE
• OpenWeb Consortium, open source project of distributed middleware
• TheServerSide.com, portal for J2EE Middleware Technologies: resources
• Server-Side Java Programming forum @IBM

• Specifications

• J2EE Management (JSR 77)
• EJBs: 2.0
• J2EE Platform
• JSPs
• Servlets

Tools

• eXtend Workbench @Novell, IDE for J2EE and Web Services apps
• J2J, a web development tool to use server-side Java objects in JavaScripts
• Lightweight Services (LWS) @IBM
• Log4Web, a J2EE Web app for Log4J
• Middlegen, generates XDoclet @tags for EJBs, JDO, JSP/Struts

Tutorials/Training

• Best Practices for Building J2EE Applications
• Deployathon Online!
• Enhance J2EE component reuse with XDoclets
• Enterprise Java Tutorial, Part 1: Architecture and Analysis; Part 2: Business Object Design and Implementation; Part 3: Controller Design and Implementation @IBM
• Introduction to the J2EE Connector Architecture
• J2EE Developer's Guide
• J2EE Tutorial for the Sun ONE Platform
• Simplifying J2EE and EJB Development with BC4J
• The Advanced Java/J2EE Tutorial
• The J2EE Tutorial for J2EE 1.3 (alt)
• The J2EE 1.4 Tutorial
• Orion Tutorials
• @Sun
• Writing Enterprise Applications for the J2EE Reference Implementation

Web Application Frameworks

• Articles

• IBM Application Framework for e-business
• Introduction to Maverick
• Java technology in the IBM Framework for e-business

• Brazil, a web application framework:

• Articles: Serve Clients' Specific Protocol Requirements with Brazil Part 1, 2, 3, 4, 5, 6

• Expresso Framework, an open-source Web Application Development (AD) Framework (free): Expresso Developer's Guide; Expresso/Struts Integration Summary

• Articles

• Getting the most out of Expresso 5.0

Application Components Layer

Expresso Framework Layer

Caching

Configuration Values

Controller Objects

Database Objects

DB Connection Pooling

Email Connectivity

Event Notification and Error Handling

Health Check

Job Control

Logging

Registration & Login

Security

Taglibs

Unit Testing

Workflow

XML

HTML
Javascript
XML

Servlet
JSP

JDBC

EJB

JMS

J2EE Layer

Database Layer

• Jeeglue
• JRoots
• Keel Framework, an application meta framework: status

• Articles: Keel: The Next Generation Meta Framework

• Niggle, a web application framework
• Struts
• Tapestry, a component-based web application framework
• WebApp Framework

Web Applications

• Articles

• Creating a Web Application with Ant and Tomcat 4
• Mix protocols transparently in Web applications
• Proofing Web applications for performance and scalability
• Remote scripting using a servlet
• Secure a Web application, Java-style @IBM
• Sending rich messages between client and server using asynchronous messaging
• Using JMX to Manage Web Applications
• Web apps in a snap
• Writing a Web Application @BEA

• Projects/Products

• Open Web Application Security Project (OWASP)

• Guide to Building Secure Web Applications
• Top Ten Web Application Vulnerabilities

• Resources

• JavaCorporate, Java-based Web applications
• Web Application Development @Novell

• Tutorials/training

• Server-Side Web Applications using Servlets and JSP 1.0
• Using IBM Web Performance Tools to stress test the Web

• Web Services
• Whitepapers

• How to Build a Really Big Distributed J2EE System Using Tools You Have Around the Office @Gemstone
• J2EE Best Practices

Antipatterns

• Articles

• Bug Patterns

• The Split Cleaner bug pattern
• The Impostor Type bug pattern
• The Dangling Composite bug pattern
• The Null Flag bug pattern
• The Double Descent bug pattern
• The Liar View bug pattern
• The Saboteur Data bug pattern
• The Broken Dispatch bug
• Prevent mistypings to the String class

• Java Performance: the top 5 pigs

• Books

• Bitter EJB
• Bitter Java

• Resources

• AntiPatterns
• Bitter Java antipatterns community
• @Wiki

Enterprise Java Beans (EJBs): Specifications

• Articles: @Developer.com; @PlantetJava

• Basic

• A beginner's guide to Enterprise JavaBeans
• Enterprise JavaBeans - Part 1, 2, 3, 4, 5, 6, 7, 8
• Introduction to EJBs Part 1, 2, 3, 4
• What are Enterprise JavaBeans components? Part 1: The history and goals of EJB architecture; Part 2: EJB programming model; Part 3: Deploying and using Enterprise JavaBeans components @IBM

• Bean Managed Persistence
• Brewing entity Enterprise JavaBeans
• CORBA

• EJB Components and CORBA Clients: A Developer Guide
• Integrate EJBs with CORBA
• Integrating CORBA with EJB

• Create forward-compatible beans in EJB: Part 1, 2
• Deciding whether EJB is appropriate
• Deployment

• The art of EJB deployment

• Development

• Accessing CICS Transactions from EJBs
• Developing EJB Access Beans in VisualAge for Java
• Simplifying J2EE and EJB Development with BC4J
• Using a Generic SQL Entity EJB Wrapper to Simplify EJB Development

• Efficient Entity EJB development
• EJB 2.0

• A Peek at EJB 2.0 Part 1, 2, 3
• Container-managed relations for the 21st century
• EJBs [2.0] in a Nutshell
• EJBs 2.0 Container-Managed Persistence Example
• EJB 2.0 Specification Changes
• Read all about EJB 2.0

• EJB 2.1

• What's New in EJB 2.1
• EJB 2.1 Web Services: Part 1, 2
• The Enhanced Message-Driven Bean
• The Timer Service
• New Functinality in EJB QL

• EJB-Based Services
EJB best practices

• Best Practices for Writing EJBs
• Best practices in EJB exception handling
• Build a better exception-handling framework
• Entity Bean protection
• Improve your remote object design
• Speed up your RMI transactions with value objects
• The Business Delegate pattern
• The dynamic delegate
• The fine points of data validation
• The limits of delegation
• Validation helper classes

• EJB Inheritance, Part 1, 2, 3
• EJB UML Diagrams
• EJB vs COM+/MTS
• Enterprise JavaBeans (EJB) Best Practices
• Frameworks

• Get down to business

• How to Customize Entity Beans
• Integrating Apache SOAP with an EJB Server
• Make an EJB from any Java class with Java Reflection
• Message-Driven Beans

• Add concurrent processing with message-driven beans
• EJB 2 Message-Driven Beans
• EJB Messaging: Part 1 - JMS and JavaMail; Part 2: Message-Driven Beans
• How to design a rule-based Message-Driven Bean
• Message-driven Beans
• Message-driven beans: Enabling asynchrony in EJB
• Using Message-Driven Beans

• Migrating from EJBs 1.1 to 2.0
• Mixing Sun's magic beans
• Optimization

• Optimizing container-managed persistence EJB entity beans
• Seven Rules for Optimizing Entity Beans

• Primary Keys

• Foreign and primary Keys
• Generate Primary Keys for EJBs
• Identity and Primary Keys - Part I

• Reduce EJB network traffic with astral clones
• Security

• Access EJBs Through Firewalls

• TechMetrix Research: EJBs from a critical perspective
• To EJB or not to EJB

• Application Servers
• Beginner's Guide
• Books

• Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform
• Bitter EJB Review Project
• EJB Cookbook Review Project
• Enterprise JavaBeans, 3rd Edition; Ch 13: Message-Driven Beans; Exercise Workbooks and Examples (free)
• Professional EJB : Ch 5: The EJB 2.0 Entity Model; Ch 9: Transactions and EJB
• Mastering Enterprise Java Beans, 2nd Edition (on-line)

• EJB Components
• EJB FAQs
• EJB vs COM++ debate
EJB QL (Query Language)

• Articles

• Learning EJB QL

• Resources

• EJB-QL World
• @JDance

• Tutorials

• @Sun

• JSRs

• UML/EJB Mapping Specification (JSR 26)

• Projects/Products

• Castor
• EJB Benchmark, tests the performance of 5 EJB idioms
• EJBGen, EJB 2.0 code generator

• Accelerate EJB 2.0 development with EJBGen

• EJBQuick: EJBQuickTest, EJBQuickSim
• Enhydra EJB Project
• Javlin, an EJB data cache manager

• When Application Servers Aren’t Enough
• white papers

• OpenEJB project (alt)
• @Pramati
• Super, EJB server monitoring tool; includes logging/trace and test capabilities

• Resources

• @Cetus
• ejbean.com
• EJB Examples @BEA
• EJB-Interest archive
• EJB Links and here
• EJBportal
• EJB-SIG
• EJB Talk
• @Flashline.com
• jMiddleware.com: EJB, EJB Links

• Tools

• Bean-test, EJB Scalability/Load Test software (alt)
• JBuilder plug-ins

• Chocolate for XDoclet, integrated EJB Development with XDoclet

• Super, EJB server monitoring tool

• Tutorials/Training

• Building Your First Stateless Session Bean
• Creating EJB Applications in WithClass
• EJB 2.x CMP/CMR and EJB QL tutorial
• EJB Fundamentals @IBM
• EJB Technology Fundamentals
• EJB Technology Learning Center @Sun
• EJB Tutorial, Part 1, 2
• Getting started with Enterprise JavaBeans technology
• Introduction to Building and Deploying Enterprise JavaBeans Part 1
• Introduction to Container-managed persistence and relationships: Part 1, 2, 3, 4
• Introduction to Enterprise JavaBeans, free course @IBM
• Java Skyline: Learn EJB
• @Sun
• Using Container-Managed Persistence
• Using Container-Managed Relationships
• Using EJB Local Interfaces
• Using EJB Query Language

J2EE Connector Architecture (JCA): Specification

• Articles

• Connect the enterprise with the JCA: Part 1, 2
• Connectors and resource adapters
• Developing Applications with JCA-based Tools
• JCA whitepaper
• J2EE Connector Architecture
• J2EE Connector Architecture Brings Business Systems to the Web
• J2EE Connector Architecture Promises to Simplify Connection to Back-End Systems
• The J2EE Connector Architecture's Resource Adapter
• Using the J2EE Connector Architecture Common Client Interface

• Books

• J2EE Connector Architecture and Enterprise Application: Ch. 1, Enterprise Application Integration; Ch. 10, Building a Resource Adapter

• Projects/Products

• BerkeleyConnector, JCA compliant connectors for the Berkeley Database system

• Resources

• Code Samples
• @Java One 2001

• Tutorials

• J2EE Connector Architecture

Java Message Service (JMS)

• Articles/Papers

• Configuring SSL Connections between JMS Clients and the WebSphere MQ JMS Provider
• Distribute JavaBean Events Across Java Virtual Machines
• Get the message?, using JMS technology as a data replication solution
• Implement a J2EE-aware application console in Swing
• Implementing vendor-independent JMS solutions
• iPlanet JMS Samples
• JMS and EJBs: The inbound message conundrum
• Listen to heartbeats using JMS
• Manage Users with JMS
• Messaging makes its move: Part 1, 2
• Should you go with JMS?
• Should you use JMS in your next enterprise application?
• Simplify JMS with the Facade Design Pattern
• Transaction and redelivery in JMS
• WebSphere JMS/JTA support for MQSeries Overview
• Writing Java Message Service programs using MQSeries and VisualAge for Java, Enterprise Edition: Part 1, 2
• Writing Java Message Service programs using WebSphere MQ and WebSphere Studio Application Developer: Part 1, 2

• Books

• Free JMS books
• Java Message Service
• MQSeries Programming Patterns, IBM redbook (Ch 8. Programming with JMS)
• MQSeries using Java (on-line) 5th Edition; 7th Edition

• Projects

• OpenJMS project

• Resources

• Introduction to JMS
• jMiddleware.com: JMS, JMS Links
• JMS links
• MQSeries sample code
• Sonic Developers Exchange

• Server

• JBossMQ standalone JMS server (free)
• SwiftMQ, standalone JMS Enterprise Messaging System (free) @Progressive

• Tools

• iBus middleware @Softwired

• Tutorials/Training

• A Messaging Primer
• Java Skyline: Learn JMS
• JMS: An infrastructure for XML-based business-to-business communication
• JMS Tutorial

Java Naming and Directory Interface (JNDI): 1.2 API; documentation; Specification

• Articles/Papers

• J2EE or J2SE? JNDI works with both
• Java LDAP
• JNDI overview: Part 1: An introduction to naming services: Part 2: An introduction to directory services: Part 3: Advanced JNDI: Part 4: the Doc-u-Matic, a JNDI application
• LDAP and JNDI: Together forever

• Resources

• FAQ; @jGuru; and here
• JDK 1.4
• JNDI Implementor Guidelines for LDAP Service Providers
• JNDI Service Providers
• JNDI SPI: 1.2 API
• The Mozilla Directory (LDAP) SDK Project

• Tools

• OpenLDAP

• Tutorials

• Java Skyline: Learn JNDI
• JNDI Tree Browser User's Guide
• JNDI Tutorial: LDAP package; Tips for LDAP Users (download; on-line)

JavaServer Faces (JSF) Technology: JSR 127

• Articles

• A first look at JavaServer Faces: Part 1, 2
• Integrating JSP/JSF and XML/XSLT: The Best of Both Worlds

• Projects

• HyperQbs, an open servlet framework compliant with JavaServer Faces

• Resources

• @JamesHomes.com

• Tutorials

• @Sun

JavaServer Pages (JSP): Specifications; documentation

• Articles/Papers

• Add the power of asynchronous processing to your JSPs
• Build a Notification Servlet That E-mails Exceptions to App Developers
• Building your own JSP Components (alt)
• Cache in on faster, more reliable JSPs
• Call JavaBean methods from JSP 2.0 pages
• Developing Multilingual Web Applications Using JavaServer Pages Technology
• Displaying Tables in JavaServer Pages
• FreeMarker: An open alternative to JSP, a template engine
• Get disconnected with CachedRowSet
• Govern your images with JSP code
• Hans's Top Ten JSP Tips
• How to Create a Harmonious Web Site Using HTML, Java Server Pages, and XML @Bluestone
• Internationalization

• Developing Multilingual Web Applications Using JavaServer Pages Technology

• Introducing JavaServer Pages
• JSP best practices; More JSP best practices
• Maintaining State for HTML Form Buttons
• Process JSPs effectively with JavaBeans
• Java Web development sans JSP technology: Part 1: Simplify Web development with Tea; Part 2: Tea in a Model-View-Controller architecture
• JSP Templates @Caucho
• JSP Templates @JavaWorld
• JSPs: A Developer's Perspective
• Security

• JSP Security

• Take the Pain out of Distributed Java
• The Problems with JSP
• Understanding JavaServer Pages Model 2 architecture
• Use the BodyTagSupport Class to Add More Flexibility to JSP Pages
• Web Application Development with JSP and XML: Part I: Fast Track JSP; Part II: JSP with XML in mind; Part III: Developing JSP Custom Tags; Part IV: Using J2EETM Services from JSP

• Books

• Advanced JavaServer Pages: Ch. 11, XML
• Building Dynamic Websystems
• Core Servlets and JavaServer Pages (free to JavaLobby members): chapters
• JavaServer Pages: Building Dynamic Websystems (under development)
• JSP Examples and Best Practices, Ch. 5: Development Using Patterns
• MySQL and JSP Web Applications: Data-Driven Programming Using Tomcat and MySQL, errata
• Professional JSP, 2nd Edition: Ch. 12, JSP Architecture, Ch. 17, Case Study: J2EE, EJBs and Tag Libraries
• Ten JSP technology books compared
• Web Development with JavaServer Pages (ebook )

• FAQs; @JGuru
• Projects/Products

• alaJSP
• Communiqué JSP Debugger (cqjd) (free)
• DBForms
• GnuJsp
• JSP Explorer
Resin, Servlet/JSP engine with XSLT support

• Resin: The Instant Application Server

Struts, a framework for building Web applications @Jakarta: 1.0.2 UserGuide, 1.1 User Guide; 1.0.2 API, 1.1 API

• Articles

• An Introduction to using Jakarta Struts for Web Application Development
• An Introduction to Struts
• Boost Struts with XSLT and XML
• Building a Web Application: Strut by Strut
• Create Better Web Apps with Struts
• Fast Track to Struts: What it does and how
• Internationalize your Struts application for multiple locales
• Jump the hurdles of Struts development
• Learning Jakarta Struts: Part 1, 2, 3
• Learning the New Jakarta Struts 1.1: Part 1, 2
• Mix protocols transparently in Struts
• Protect Web application control flow
• Struts, an open-source MVC implementation
• Struts and Tiles aid component-based development
• Struts Controller UML diagrams
• Struts 1.1 Controller UML diagrams
• Strut your stuff with JSP tags
• Tiles 101/201
• Tiles Advanced Features
• UI design with Tiles and Struts
• Using the Validator Framework with Struts
• Writing a Simple Struts Application using WebSphere Studio V5

• Books

• Java Web Development with Struts (alt)
• Mastering Jakarta Struts
• Struts in Action, Ch: 11 - Developing Applications with Tiles; Ch: 12 - Validating User Input; Source Code
• The Struts Framework: Practical Guide for Java Programmers (alt)

• Resources

• FAQs @JGuru, includes Struts tips
• Forums
• More About Struts: FAQs; links; Struts Catalog of Struts Design Patterns and Strategies
• presentation at New England JUG
• Struts TagLib documentation: Beans, HTML, Logic, Nested, Template
• Struts Tips
• Struts-User mail-archive: List Summary
• Tiles Website: Tiles API
• Validator API

• Tools

• Camino, Visual Modelling Tool for Struts Applications
• EasyStruts plug-in for Eclipse IDE
• SandBoss, a development/deployment environment for SAND (Struts And Nodes Development)
• Struts Console (free), standalone Java Swing application for managing Struts-based apps
• Struts Action Scripting
• Struts Workflow Extension

• Tutorials

• An Introduction to Struts
• Get up to Speed with Struts: Part 1, 2, 3, 4, 5, 6
• Introducing: the Struts bean and logic Tag Libraries
• Introduction to Struts; Advanced Struts
• @JSP Insider
• Struts - A Quick How-To
• Struts meets Swing: Part 1, 2
• Struts Tutorial
• Tiles Tutorial
• Welcome to the Struts Framework

• Resources

• @Cetus
• @Enterprise Developer
• HostJSP.com, expertise to manage and host JSP application services
• Introduction to JSPs @ C|Net Builder.com
• jMiddleware.com: Servlets & JSP Links
• JavaServer Pages Technology for Servlet Developers
• @JavaWorld
• JSP/Servlet ISPs: mycgiserver; WebAppCabaret
• JSP and Servlet Containers (free)
• JSP Area @Experts Exchange
• JSP Best Practices column
• JSP Insider: tutorials
• JSP-Interest archive
• JSP quick reference cards
• JSP Resource Index
• JSP Resources @Free Programming Resources
• JSPs @Flashline.com
• JSPWiki
• Radhika's JSP Resources
• Servlet and JSP mailing list archives
• TheJSPBook.com

Tag Libraries (1.1 DTD)

• Articles

• Advanced Features of JSP Custom Tag Libraries
• Designing JSP Custom Tag Libraries
• Encapsulate reusable functionality in JSP tags
• Email Web Application Using JSP Tag Libraries
• Faster Development with JavaServer Pages Standard Tag Library
• JSP taglibs: Better usability by design
• Publish event-driven Web content with JSP custom tags
• Take control of your JSP pages with custom tags
• The Jakarta Taglibs Project--Part I , II

• Books

• Core Servlets and JavaServer Pages: Ch. 7, Generating the Serve Response; Ch. 14, Creating Custom JSP Tag Libraries
• JSP Tag Libraries: Ch. 6, Tag Development Techniques, Ch. 8, Using JavaBeans with Tags

JSP Standard Tag Library (JSTL) (JSR 52) @Sun

• Articles

• An Introduction to JSP Standard Template Library (JSTL)
• A JSTL primer, Part 1, 2, 3, 4
• JSP Standard Tag Library eases Webpage development
• JSTL 1.0: Standardizing JSP: Part 1
• JSP Standard Tag Libraries: Part 1, 2
• JSTL 1.0: Part 1, Standardizing JSP; Part 2, What JSP Applications Need

• Books

• Core JSTL: Mastering the JSP Standard Tag Library; Ch. 5: URL Actions
• JSTL in Action: source code; Ch. 5: Controlling Flow with Loops

• Resources

• JSTL Quick Reference
• Standard Taglib implementation @Jakarta

• Tutorials

• JSTL Tutorial

• Projects/Products

• Dynamic Image, custom tags for creation and processing of images or graphics
• Taglibs @Jakarta: Log TabLib

• Resources

• <jsptags.com>
• Getting Started

• Tools

• Coldtags suite, collection of custom JSP tags
• JCE taglib, strong encryption for JSP

• Tutorials

• An Introduction to JSP Tag Libraries
• Custom Tags in JSPs: Part of J2EE Tutorial (alt)
• Developing JSP Custom Tags
• @JSP Insider
• Taglibs Tutorial @Jakarta

• Tag Libraries Tutorial (pdf) @Sun

• <taglib:tutorial> @Orion

• Tools

• FreeMarker, a template engine
• GifEncoder
• JSPExecutor

• Tutorials/training

• Introduction to JSP by Richard Baldwin
• Introduction to JavaServer Pages @C|Net
• Introduction to JavaServer Pages, free course @IBM
• Introduction to JavaServer Pages @IBM
• Introduction to JavaServer Pages @Netscape
• Intro to JSP and Servlet Development
• Java Skyline: Learn JSPs
• JavaServer Pages Fundamentals
• JSP and JavaMail
• JSP examples @BEA
• @JSP Insider
• JSP Tag Exceptions (Ch. 12 of Professional Java Server Programming J2EE Edition)
• JSP Tag Extension examples @BEA
• JSP Tutorial
• Servlets and JavaServer Pages (JSP) 1.0: A Tutorial
• @Sun
• Writing JSP Extensions @BEA

Patterns

• Articles

• A J2EE presentation pattern: Applets with servlets and XML
• Advanced form processing using JSP
• An inside view of Observer
• BC4J Design Pattern Catalog
• Build better Web sites using the Translator pattern
• Combine the Session Façade pattern with XML
• Core J2EE Patterns: catalog
• Decorating resources in WebSphere
• Design Patterns for Building Flexible and Maintainable J2EE Applications
• Design Patterns for Optimizing the Performance of J2EE Applications
• Design patterns make for better J2EE apps
• E++: A pattern language for J2EE applications: Part 1, 2
• HMVC: The layered pattern for developing strong client tiers
• Implement the Observer pattern with EJBs
• J2EE Design Patterns
• Optimistic Locking pattern for EJBs
• Repair invalid cached services in the Service Locator pattern
• Rules and Patterns for Session Facades
• Server-side patterns for flexible initialization: Part 1: A reflective approach to initializing your server-side system: Part 2: Customizing command targets in your system initialization
• The Aggregate Entity Pattern
• The Business Delegate pattern
• Web application components made easy with Composite View
• Write once, persist anywhere, implement a DAO pattern framework

• Books

• Core J2EE Patterns: Best Practices and Design Strategies
• EJB Design Patterns (on-line)
• J2EE Best Practices: Java Design Patterns, Automation, and Performance
• J2EE Design Patterns Applied: Ch. 3 - Patterns Applied to a Persistence Framework
• Patterns of Enterprise Application Architecture : Ch. 9 - Domain Logic Patterns; Ch. 15 - Distributed Patterns
• J2EE Design Patterns Applied: Ch. 5 - Apply Patterns to Manage Security in your J2EE Applications

• Patterns Catalog: Core Patterns

• Business Tier, patterns related to EJBs

• Aggregate Entity
• Business Delegate (core)
• Session Facade (core)
• Service Locator (core)
• Value List Handler (core)
• Value Object
• Value Object Assembler

• Composite Entity (core)
• Data Binding Object (DBO)
• Integration Tier, patterns related to JMS and JDBC

• Data Access Object (DAO) (core)
• Service Activator (core)

• Intercepting Filter (core)
• Presentation Tier, patterns related to servlets and JSP

• Composite View (core)
• Decorating Filter
• Dispatcher View (core)
• Front Controller (core)
• Service To Worker (core)
• View Helper (core)

• Transfer Object (core)
• Transfer Object Assembler (core)

• Resources

• Archives of J2EEPATTERNS-INTEREST@JAVA.SUN.COM
• EJB Design Patterns
• J2EE Design Patterns, @iPlanet
• J2EE Design Patterns Repository @TheServerSide
• J2EE Patterns
• J2EE Patterns Forum
• Patterns for e-business @IBM

• Tutorials

• J2EE Component Patterns Tutorial

Performance

• Articles

• 12 Tips for Better EJB Performance
• An Approach For Building Scalable, Available and Recoverable Applications
• Building J2EE Apps for Performance and Scalability
• Comparing The Performance of J2EE Servers
• Design Patterns for Optimizing the Performance of J2EE Applications
• Dive into connection pooling with J2EE
• Improving J2EE Applicatin Performance
• J2EE Best Practices for Performance
• J2EE clustering: Part 1, 2
• J2EE Performance - From Development to Testing
• J2EE Performance Tuning
• Job Scheduling in J2EE Applications
• Local/Remote Issues (chapter 4) from "Enterprise Java Performance"
• Performance (chapter 20) from "Professional JSP 2nd Edition
• Performance guidelines for architecting J2EE applications, Oracle9i whitepaper
• Performance Testing and Tuning Applications for the J2EE Platform @JavaOne 2001
• Review of "The Petstore Revisited: J2EE vs .NET Application Server Performance Benchmark"
• Stopping Web Performance Thieves
• The Key to Superior EJB Design
• Transaction management under J2EE 1.2

• Books

• Enterprise Java Performance: Ch. 1 - Performance in General; Ch. 4: Local/Remote Issues
• J2EE Best Practices: Java Design Patterns, Automation, and Performance

• Resources

• J2EE Performance Tips
• PreciseJava, best practices to improve performance in J2EE
• Tips on Performance Testing and Optimization

• Tools

• ECperf, a benchmark to measure performance and scalability of J2EE servers: @TheServerSide
• JProbe: app server integration; documentation
• LoadRunner
• OptimizeIt: app server integration tutorials; whitepapers
• PushToTest, test and monitor Web Apps and Web Services
• The Grinder, a load-testing framework
• WebLoad

Portals

• Articles

• Building a Portlet within the Model-View-Controller Paradigm using WebSphere Portal
• Building an online community with WebSphere Portal, a 15 part series
• Build portals with Jetspeed, use Apache Jetspeed to build portals out of Web services
• Create your own portlet and Web service
• Developing portlets that use JavaBeans and JSP components
• Develop Java portlets
• Enterprise Portal Development
• Go with the flow
• Introducing the Portlet Specification, Part 1
• Oracle9iAS Portal Best Practices: Navigation
• Search and Browse in the Sun ONE Portal Server
• The case for portlets
• Usability for component-based portals
• Writing portlets for the WebSphere Portal Server

• Resources

• BEA Getting Started with Portals and Portlets
• Getting Started with Oracle9iAS Portal
• Portals Magazine
• Portals.US
• Portlet Specification, JSR 168
• Symbase Portlets
• Web Services for Remote Portals (WSRP) @OASIS
• WebSphere Portal InfoCenter
• WebSphere Portal Zone

• Projects/ Products

• ATG Portal
• BasicPortal (Jasic)
• BEA WebLogic Portal
• Jetspeed @Apache, an open source implementation of an Enterprise Information Portal
• Liferay Enterprise Portal
• Oracle9iAS Portal Center
• Sun ONE Portal Server
• WebSpere Portal for Multiplatforms

• Tutorials

• Building a Custom Portal Step-by-Step @BEA
• Jetspeed, Part 1: Developing portlets; Part 2: Advanced portlet technology

Servlets: 2.2 API; Specification (pdf)

• Articles

• @Servlets.com
• CORBA

• Servlet Inter-communication with CORBA

• Displaying database content dynamically with Java servlets and JavaScript
• Doclet your servlet!
• Facilitate form processing with the Form Processing API
• Facilitate form processing with the Form Processing API 2.0
• Filters

• Filter code with Servlet 2.3 model
• The Essentials of Filters
• Using Servlet Filters

• HTTP tunneling with servlets
• Improved Performance with a Connection Pool
• Introducing the new Servlet API 2.1
• Introduction to Java: Part 1 - Servlets; Part 2 - JSPs @Allaire
• Manage distributed sessions
• Pushlets: Send events from servlets to DHTML client browsers
• Servlet 2.3: New features exposed
• Servlet 2.4: What's in store
• Servlet Best Practices: Part 1, 2, 3
• Solve your servlet-based presentation problems
• Take control of the servlet environment: Part 1, 2, 3
• Untangle your servlet code with reflection
• What's new in Java Servlet API 2.2
• Which Architecture?

• Books

• A compartive review of Java Servlet books
• Core Servlets and JavaServer Pages (free to JavaLobby members) (alt)

• More Servlets & Java Server Pages

• CoolServlets.com
• Engines for Web Servers

• JRun @Allaire (also supports JSPs)
• Apache's Jserv: Getting Started
• List of
• ServletExec @New Atlantic (also supports JSPs)

• @IBM
• JavaOne Servlets presentation
• JavaServer Products Group: Servlets, Java Web Server
• Projects/Products

• @ColdJava
• HyperQbs, an open servlet framework compliant with JavaServer Faces
• In industry
• jo!, servlet engine
• List of products that support Servlets
• M5, Web server
TeaServlet, a template engine that works with the Tea template language

• Articles

• Java Web development sans JSP technology: Part 1: Simplify Web development with Tea; Part 2: Tea in a Model-View-Controller architecture

• Kettle, an Integrated Development Environment for editing Tea templates
• Trove class library, File API, Logging API and a set of utility classes

Tomcat, Java Servlets and JavaServer Pages Reference Implementation

• Articles

• Demystifying Tomcat 4's server.xml File
• Deploying Web Applications to Tomcat
• Generate dynamic content with Tomcat and MySQL
• Performance

• Filtering tricks for your Tomcat, Part 1, 2

• Understanding Tomcat Security
• Using Tomcat column

• Demystifying Tomcat 4's server.xml File
• Using Tomcat 4 Security Realms

• Books

• Mastering Tomcat Development

• Documentation: Context Container; Application Developer's Guide
• Resources

• Catalina API
• TomcatBook Project
• Using Tomcat column

• Tutorials

• Developing for the J2EE Tomcat Platform

Turbine, a servlet-based framework for building secure dynamic websites: presentation at New England JUG

• Fulcrum, a services framework
• Java Caching System (JCS), a distributed caching system for server-side Java apps
• Maven, a Java project management and project comprehension tool

• Maven ties together tools for better code management
• Project management: Maven makes it easy

• Torque, a persistence layer: Tutorial, User Guide; releases

• Articles

• Installing and Using the Torque Object Mapper

• Turbine Development Kit (TDK)

• Tyrex, open source transaction manager
Velocity, a Java-based template engine that permits web page designers to use a template language to reference objects defined in Java code

• Articles

• Start up the Velocity Template Engine

• Resources

• Velocity Tools
• User Guide

• WebMacro, a Servlet development framework

• Extensions: Action Servlet

• Resources

• @Cetus
• Documentation list
• @Enterprise Developer
• Industry Momentum
• Introduction to Servlets
• @Java Boutique
• @JavaWorld
• jMiddleware.com: Servlets & JSP Links
• Radhika's Servlets Resources
• Servlet and JSP mailing list archives
• ServletForum.com
• Servlet-Interest archive
• Servlet suite, collection of Servlets and filters
• Servlets Taverne

• Servers

• Jetty, Java HTTP Servlet Server
• Tomcat

• Servlets.com
• Servlets FAQs
• Tools

• com.oreilly.servlet package
• DbConnectionBroker @Java Exchange
• ECS, an HTML and XML generator
• FreeMarker, an open-source HTML template engine for Java servlets
• jHTML
• SQLServlet
• JSOS (Servlets Office Suite), collection of servlets and filters
• Watchdog, validates compatability with the Servlet and JavaServer Pages specifications

• Tutorials/training

• @Allaire
• Building servlets with session tracking
• Fundamentals of Java Servlets
• Java Skyline: Learn Servlets
• Servlets, for Sun's Java Web Server
• Servlets and JavaServer Pages (JSP) 1.0: A Tutorial
• Servlet Essentials
• @Sun
• Writing Servlet Filters

Testing

• Articles

• A J2EE Testing Primer
• A stepped approach to J2EE testing with SDAO
• Debugging and Unit-Testing Server-Side Web Applications
• EJBs force testing changes
• Test-First Development with Mock J2EE, JMS, and JNDI
• Testing J2EE Applications with Rational PurifyPlus
• Testing an Entity EJB

• Products/Projects

• Bugkilla, J2EE functional test suite
• Cactus, a test framework for unit testing server-side Java code: EJB Testing tutorial
• GJ-Coverage
• JUnit

• Articles

• Application Quality Assurance: Unit Testing
• Testing EJBs with JUnit
• Test Infect Your EJBs and here

• J2EE Extensions

• Cactus, a test framework for unit testing server-side Java code
• JUnitEE, unit test J2EE apps
• StrutsTestCase: API

• TestMyBeans, middleware load & functional testing

• Resources

• J2EE Performance and Testing Center
• Java/J2EE Testing Solutions @Mercury Interactive

• Tools

• Latka, a J2EE functional (end-to-end) testing tool
• TagUnit, a framework for testing JSP tags

J2EE (Java 2 Enterprise Edition): Specifications (1.3: JSR 58; 1.4: JSR 151)

• Add a JAC to your toolshed
• Enterprise Application Server Development Environments
• Middleware that beats the budget, Open source Java and J2EE application servers
• Spilling the Beans on Java Application Servers
• Upstream: Charting the Application Server Market
• What Influences the Performance of Application Servers?

• Enhydra, Open Source Java/XML Application Server
• iPlanet Integration Server enables e-commerce from the Web to the mainframe: whitepapers
• Java Aspect Components (JAC)
JBoss Open Source EJB application sever: download, FAQ

J2EE Links