Sun Java Solaris Communities My SDN Account Join SDN
 

Java EE FAQ

Java EE: Do more with less work.
Platform for SOA and next-generation web applications.  

Java EE FAQ




Java Platform, Enterprise Edition

  1. What is the Java Platform, Enterprise Edition (Java EE)?
  2. What is the difference between Java EE and J2EE?
  3. What are the main benefits of the Java EE platform?
  4. Who needs the Java EE platform?
  5. Where can I get more information about the Java EE platform?
  6. Are there compatibility tests for the Java EE platform?
  7. What is the difference between being a Java EE licensee and being Java EE compatible?
  8. What is the importance of being Java EE compatible?
  9. What tools can I use to build Java EE applications?

Java EE 5: The latest version of the Java Platform, Enterprise Edition

  1. What's new in the Java EE 5 platform?
  2. What technologies are included in the Java EE 5 platform?
  3. Why move to Java EE 5?
  4. Which version of the platform should I use now -- Java EE 5 or J2EE 1.4 or J2EE 1.3?
  5. Can applications written for the J2EE platform v1.3 and v1.4 run in a Java EE 5 implementation?
  6. What tools can be used with Java EE 5?

Java EE 5 Software Development Kit (SDK)

  1. What is the Java EE 5 SDK?
  2. How can I get the Java EE 5 SDK?
  3. Which version of Java EE SDK should I use?
  4. Can I use it in production?
  5. Where can I get more information about the SDK?
  6. How is the SDK related to Project GlassFish?
  7. How are the Java EE architecture and the Sun Java Enterprise System related?
  8. What tools can I use with the SDK?
  9. What do you mean by "Free"?
  10. Is support "Free"?
  11. What is the relationship of the Apache Tomcat open-source application server and the Java EE SDK?

Java Platform, Enterprise Edition

Q: What is the Java Platform, Enterprise Edition (Java EE)?

Java Platform, Enterprise Edition (Java EE) is the industry standard for developing portable, robust, scalable and secure server-side Java applications. Building on the solid foundation of Java SE, Java EE provides web services, component model, management, and communications APIs that make it the industry standard for implementing enterprise class service-oriented architecture (SOA) and Web 2.0 applications.

Q: What is the difference between Java EE and J2EE?

The name of the Java platform for the enterprise has been simplified. Formerly, the platform was known as Java 2 Platform, Enterprise Edition (J2EE), and specific versions had "dot numbers" such as J2EE 1.4. The "2" has been dropped from the name, as has the minor revision number. So the next version of the Java platform for the enterprise is Java Platform, Enterprise Edition 5 (Java EE 5).

Q: What are the main benefits of the Java EE platform?

The Java EE platform provides the following:

  • Complete web services support. The Java EE platform provides a framework for developing and deploying web services on the Java platform. The Java API for XML Web Services (JAX-WS) enables Java technology developers to develop SOAP-based interoperable and portable web services. Developers use the standard JAX-WS programming model to develop SOAP-based web service clients and endpoints. A web service endpoint is described using a Web Services Description Language (WSDL) document. JAX-WS enables clients to invoke web services developed across heterogeneous platforms. In a similar manner, JAX-WS web service endpoints can be invoked by heterogeneous clients. For more info, see http://java.sun.com/webservices/.

  • Faster solutions delivery time to market. The Java EE platform uses "containers" to simplify development. Java EE containers provide for the separation of business logic from resource and lifecycle management, which means that developers can focus on writing business logic -- their value-add -- rather than writing enterprise infrastructure. For example, the Enterprise JavaBeans (EJB) container handles distributed communication, threading, scaling, transaction management, etc. Similarly, Java Servlets simplify web development by providing infrastructure for component, communication, and session management in a web container that is integrated with a web server.

  • Freedom of choice. Java EE technology is a set of standards that many vendors can implement. The vendors are free to compete on implementations but not on standards or APIs. Sun supplies a comprehensive Java EE Compatibility Test Suite (CTS) to Java EE licensees. The Java EE CTS helps ensure compatibility among the application server vendors which facilitates portability for the applications and components written for the Java EE platform. The Java EE platform brings Write Once, Run Anywhere (WORA) to the server.

  • Simplified connectivity. Java EE technology makes it easier to connect the applications and systems you already have and bring those capabilities to the web, to cell phones, and to devices. Java EE offers Java Message Service for integrating diverse applications in a loosely coupled, asynchronous way. The Java EE platform also offers CORBA support for tightly linking systems through remote method calls. In addition, the Java EE platform has J2EE Connectors for linking to enterprise information systems such as ERP systems, packaged financial applications, and CRM applications.

  • By offering one platform with faster solution delivery time to market, freedom of choice, and simplified connectivity, the Java EE platform helps IT by reducing Total Cost of Ownership (TCO) and simultaneously avoiding single-source lock-in for their enterprise software needs.

Q: Who needs the Java EE platform?

ISVs need the Java EE platform because it gives them a blueprint for providing a complete enterprise computing solution on the Java platform. Enterprise developers need Java EE because writing distributed business applications is hard, and they need a high-productivity solution that allows them to focus only on writing their business logic and having a full range of enterprise-class services to rely on, like transactional distributed objects, message oriented middleware, and naming and directory services.

Q: Where can I get more information about the Java EE platform?

For more information about the Java EE platform and how to get the specification, see http://java.sun.com/javaee/.

The most effective way to learn about Java EE and what's new in the Java EE 5 platform is to get hands on experience with the APIs by using the Java EE 5 SDK. The Java EE 5 SDK provides a Java EE 5-compatible application server as the foundation to develop and deploy Web Services-enabled, multi-tier enterprise applications. You can download the Java EE 5 SDK from http://java.sun.com/javaee/downloads.

For beginners, the Java EE documentation page provides links to a wide variety of self-paced learning materials, such as tutorials and FAQs.

Developers looking for more advanced material should consult the Java BluePrints for the enterprise. The Java BluePrints for the enterprise are the best practices philosophy for the design and building of Java EE applications. The design guidelines document provides two things. First, it provides the philosophy of building n-tier applications on the Java platform. Second, it provides a set of design patterns for these applications, as well as a set of examples or recipes on how to build the applications.

Sun educational services also provides many training courses, which can lead to one of three certifications: Sun Certified Web Component Developer, Sun Certified Business Component Developer, or Sun Certified Enterprise Architect.

Q: Are there compatibility tests for the Java EE platform?

Yes. The Java EE Compatibility Test Suite (CTS) is available for the Java EE platform. The Java EE CTS contains over 5,000 tests for Java EE 5. The suite tests compatibility by performing specific application functions and checking results. For example, to test the JDBC call to insert a row in a database, an EJB component makes a call to insert a row and then a call is made to check that the row was inserted.

Q: What is the difference between being a Java EE licensee and being Java EE compatible?

A Java EE licensee has signed a commercial distribution license for Java EE. That means the licensee has the compatibility tests and has made a commitment to compatibility. It does not mean the licensee's products are necessarily compatible yet. Look for the Java Compatible, Enterprise Edition brand which signifies that the specific branded product has passed the Compatibility Test Suite (CTS) and is compatible.

Q: What is the importance of being Java EE compatible?

Java EE technology and its success is predicated on compatibility which brings Java technology's mission of "Write Once, Run Anywhere" capability to the server. Developers can write applications to the Java EE specification -- and companies can purchase such applications -- and be assured that they are portable across all the Java Compatible, Enterprise Edition products available today.

The list of Java EE-compatible applications servers may be found at http://java.sun.com/j2ee/compatibility.html.

Q: What tools can I use to build Java EE applications?

There are numerous choices of tools available for developing Java and Java EE applications. You can download the open source NetBeans IDE for free at http://netbeans.org. Many of the Java EE compatible vendors offer tools that support any Java EE-compatible application server.


Java EE 5: The latest version of the Java Platform, Enterprise Edition

Q: What's new in the Java EE 5 platform?

  • Java EE 5 accelerates and radically simplifies Enterprise Java development, especially for Web Services (JAX-WS 2.0), Web Applications (JSF), and transactional components (EJB 3.0). It introduces a new database persistence model (Java Persistence) and leverages Annotations from Java SE.

    • EJB 3.0 greatly simplifies the programming model through Plain Old Java Objects (POJOs), which can easily be converted to Web Services with Annotations or made persistent using the Java Persistence API. It is now much easier to write a stateless or stateful component that takes full advantage of the transactional capabilities of the EJB container.

    • Java Persistence is a much cleaner approach to mapping Java objects to relational databases, and benefits greatly from work done in Hibernate, TopLink, and Java Data Objects (JDO).

    • JAX-WS 2.0, which replaces JAX-RPC, simplifies the development of web services by automatically generating client and server code. It now provides support for JAXB 2.0 data binding, the latest W3C and WS-I standards (e.g. SOAP 1.2, WSDL 1.2), protocol and transport independence, and the REST style of web services.

    • JAXB 2.0, which adds full support for W3C XML Schemas, maps Java classes to XML data and is used by JAX-WS to encode and decode data sent in web services calls.

    • JavaServer Faces 1.2 simplifies the building of user interfaces for Web-based applications by providing pre-packaged components, significantly reducing new code development. The latest version offers better alignment with JavaServer Pages, improved state-saving behavior, and the ability to turn off component ID generation.

    • Java EE draws upon annotations and generics from Java SE virtually eliminating the need for deployment descriptors. Annotations allows declarative information to be moved inside the code and makes it much easier to deal with persistence, web services, transactions, security, and all the other powerful capabilities of Java EE.

    • Java EE also simplifies common coding issues by removing boilerplate code, relying upon reasonable defaults whenever possible, and providing a broader set of commonly used utility classes.

  • The enhancements in Java EE 5 greatly reduce the amount of code and configuration with which application developers have to contend improving their productivity.

  • Java EE 5 takes drudgery out of creating applications and reduces the amount of time spent worrying about Java EE plumbing and thus allows developers to concentrate on the business logic.

Q: What technologies are included in the Java EE 5 platform?

The primary technologies in the Java EE 5 platform are: Java API for Web Services (JAX-WS) 2.0, Java API for XML-Based RPC (JAX-RPC) 1.1, Java Architecture for XML Binding (JAXB) 2.0, SOAP with Attachments API for Java (SAAJ), Streaming API for XML (StAX), Web Service Metadata for the Java Platform, Enterprise JavaBeans (EJB) 3.0, J2EE Connector Architecture (JCA) 1.5, Java Servlet 2.5, JavaServer Faces (JSF) 1.2, JavaServer Pages (JSP) 2.1, JavaServer Pages Standard Tag Library (JSTL), J2EE Management, J2EE Application Deployment, Java Authorization Contract for Containers, Common Annotations for the Java Platform, Java Message Service (JMS) API, Java Persistence API, Java Transaction API (JTA), JavaBeans Activation Framework (JAF) 1.1, and JavaMail.

Q: Why move to Java EE 5?

Java EE 5 is the latest version of the premier platform for developing robust, scalable enterprise applications. Here are some highlights:

  • Easier development. The focus of Java EE 5 is ease of development. With Java EE 5, there is less code to write -- much of the boilerplate code has been removed, defaults are used whenever possible, and annotations are used extensively to reduce the need for deployment descriptors.

  • EJB -- simpler, better. EJB 3.0 makes programming with Enterprise JavaBeans technology simpler through the use of Plain Old Java Objects (POJOs), it also introduces a new persistence API.

  • Enhanced web services. Java EE 5 includes simplified web services support and the latest web services APIs, making it an ideal implementation platform for Service Oriented Architectures (SOA).

  • JSF, JSTL, AJAX, and more. Constructing web applications is made easier with JavaServer Faces (JSF) technology and the JavaServer Pages Standard Tag Library (JSTL). Java EE 5 supports rich thin-client technologies such as AJAX, technologies that are crucial for building applications for Web 2.0.

Q. Which version of the platform should I use now -- Java EE 5 or J2EE 1.4 or J2EE 1.3?

The Java EE 5 specification is final and you can use the Java EE 5 SDK to deploy applications today. Several application server vendors are expected to release Java EE 5 compliant versions of their products by the end of 2006. Java EE 5 provides many advantages. Please see the Java EE website (http://java.sun.com/javaee) for details. We recommend that you start with this version if you are starting new.

J2EE 1.4 has many implementations available currently. You will also find high availability versions in the market including the Sun Java System Application Server Enterprise Edition 8.1.

J2EE 1.3 has been revised twice. We recommend that you move to a higher version, either Java EE 5 or J2EE 1.4.

Q: Can applications written for J2EE 1.3 and J2EE 1.4 run in a Java EE 5 implementation?

Java EE applications that are written to the J2EE 1.3 or J2EE 1.4 specification will run on a Java EE 5 implementation. Backwards compatibility is a requirement of the specification.

Q: What tools can be used with Java EE 5?

NetBeans Enterprise Pack 5.5 Early Access gives developers early access to tools that enable Java EE 5 Platform development and creation of SOA applications, including Unified Modeling Language (UML) tools, visual design tools for SOA architects, and is integrated with the Java EE 5 SDK. You can download the NetBeans Enterprise Pack 5.5 Early Access bundle at http://java.sun.com/javaee/downloads/.

Many of the Java EE-compatible vendors are expected to offer updated versions of their tools that will support any Java EE 5-compatible application server.


Java EE 5 Software Development Kit (SDK)

Q: What is the Java EE 5 SDK?

The Java EE 5 SDK is a free integrated development kit that one can use to build, test and deploy Java EE 5-based applications. Included in the SDK is the Sun Java System Application Server Platform Edition 9.0, which implements the latest Java EE 5 technologies and provides features aimed at improving developer productivity.

Q: How can I get the Java EE 5 SDK?

The Java EE 5 SDK may be downloaded for free from http://java.sun.com/javaee/downloads/.

Q: Which version of Java EE SDK should I use?

The Java EE 5 specification is final, and you can use the Java EE 5 SDK to deploy applications today. Java EE 5 provides many advantages. Please see the Java EE website (http://java.sun.com/javaee) for details. We recommend that you start with this version if you are starting new.

The J2EE 1.4 SDK contains the Sun Java System Application Server PE 8.2 which is a J2EE 1.4-compliant application server. It is also available for free download at http://java.sun.com/javaee/downloads/.

Q: Can I use it in production?

Yes. The Sun Java System Application Server Platform Edition 9.0 contained within the Java EE 5 SDK is free to develop on and deploy.

Q: Where can I get more information about the SDK?

Information about the Java EE 5 SDK can be found at http://java.sun.com/javaee/sdk/index.jsp.

Q: How is the SDK related to Project GlassFish?

The Sun Java System Application Server Platform Edition 9.0 contained within the Java EE 5 SDK is based on the bits developed by Sun engineers and the GlassFish community. GlassFish is an open source community that is developing a Java EE 5 implementation.

Q: How are the Java EE architecture and the Sun Java Enterprise System related?

The Java EE architecture is the foundation of the Sun Java System Application Server, a component of the Sun Java Enterprise System. The Sun Java System Application Server in the current Sun Java Enterprise System is based on Java EE 5. Developers familiar with Java EE technology can easily apply their skills to building applications, including web services applications, using the Sun Java Enterprise System. For more information, see the Sun Java Enterprise System Web site.

Q: What tools can I use with the SDK?

NetBeans IDE is integrated with the SDK to provide an easy-to-develop environment. You can download the NetBeans SDK bundle at http://java.sun.com/javaee/downloads/. There are also plug-ins available for Eclipse at https://glassfishplugins.dev.java.net/#eclipse.

Q: What do you mean by "Free"?

When we say "Free" we mean that you don't pay Sun to develop with or deploy the Java EE 5/J2EE 1.4 SDK or the Sun Java System Application Server Platform Edition 8.x or 9.0. Free means that you don't pay Sun for supplementary materials including documentation, tutorials and/or Java EE Blueprints. You are also free to bundle and distribute the Sun Java System Application Server Platform Edition 8.x or 9.0 with your software distribution. When we say "Free", we mean "Free for All".

Here are some examples of how you can use Sun Java System Application Server Platform Edition 8.x or 9.0 for free.

If you are a developer you can build an application with the Java EE 5/J2EE 1.4 SDK and then deploy it on the Sun Java System Application Server Platform Edition 8.x or 9.0 (included with the SDK or available separately). No matter how many developers are on your team, all of them can use the Java EE SDK at no charge. Once your application is ready for production, you can deploy including the Sun Java System Application Server Platform Edition 8.x or 9.0 in production on as many servers or CPUs as you want.

If you are an ISV, you don't have to pay to include Sun Java System Application Server Platform Edition 8.x or 9.0 with your product, no matter how many copies of your software that you distribute. Bundling Sun Java System Application Server Platform Edition 8.x or 9.0 makes good business sense because it ensures that you are distributing a Java EE compatible server that doesn't lock you or your customers into a proprietary product. ISVs that wish to bundle Sun Java System Application Server Platform Edition 8.x or 9.0 (for free of course) should contact Sun OEM sales.

If you are a System Administrator or IT manager, you can install Sun Java System Application Server Platform Edition 8.x or 9.0 on as many servers and CPUs as you wish. Using Sun Java System Application Server Platform Edition 8.x or 9.0 also reduces cost and complexity by saving money on licensing fees and the assurance of a Java EE platform compatible application server that can be used with other Java EE platform compatible application servers.

Q: Is support "Free"?

There are resources that are available for free on our site that may help you resolve your issues without requiring technical support. For example you can ask questions on our forums, search for known issues on the bug database, review the documentation, or look at code samples and applications to help you at no cost.

Production support is also available for a fee through Sun Service. For more information about Developer Technical Service and Sun Service, please visit http://www.sun.com/software/products/appsrvr/support.xml.

Q: What is the relationship of the Apache Tomcat open-source application server and the Java EE SDK?

Tomcat is based on the original implementation of the JavaServer Pages (JSP) and Java Servlet specifications, which was donated by Sun to the Apache Software Foundation in 1999. Sun continues to participate in development of Tomcat at Apache, focusing on keeping Tomcat current with new versions of the specifications coming out of the Java Community Source Process(SM). Sun adapts and integrates the then-current Tomcat source code into new releases of the Java EE SDK.

Java EE SDK Fuels Efficiency - Get it Now

Getting Started
 
Key Resources
 
Related Resources
 
Open Project Glassfish