You are previewing WebSphere Application Server Liberty Profile Guide for Developers.
O'Reilly logo
WebSphere Application Server Liberty Profile Guide for Developers

Book Description

IBM WebSphere® Application Server V8.5 includes a Liberty profile, which is a highly composable, dynamic application server profile. It is designed for two specific use cases: Developer with a smaller production run time, and production environments. For a developer, it focuses on the tasks a developer does most frequently and makes it possible for the developer to complete those tasks as quickly and as simply as possible. For production environments, it provides a dynamic, small footprint run time to be able to maximize system resources.

This IBM® Redbooks® publication provides you with information to effectively use the WebSphere Application Server V8.5 Liberty profile along with the WebSphere Application Server Developer Tools for Eclipse, for development and testing of web applications that do not require a full Java Platform. It provides a quick guide on getting started, providing a scenario-based approach to demonstrate the capabilities of the Liberty profile along with the developer tools, providing a simplified, but comprehensive, application development and testing environment.

The intended audience for this book is developers of web and OSGi applications who are familiar with web and OSGi application concepts.

This book has been updated to reflect the new features in WebSphere Application Server V8.5.5.

Table of Contents

  1. Front cover
  2. Notices
    1. Trademarks
  3. Preface
    1. Authors
    2. Now you can become a published author, too!
    3. Comments welcome
    4. Stay connected to IBM Redbooks
  4. Chapter 1. An introduction to the Liberty profile
    1. 1.1 Liberty profile overview
      1. 1.1.1 Programming models
      2. 1.1.2 Supported development environments
      3. 1.1.3 Application development and deployment tools
      4. 1.1.4 Additional resources
    2. 1.2 Simplified configuration
      1. 1.2.1 Server definition
      2. 1.2.2 Server configuration using the server.xml file
      3. 1.2.3 Bootstrap properties
      4. 1.2.4 Portable configuration using variables
      5. 1.2.5 New configuration types and validation
      6. 1.2.6 Encoding passwords
      7. 1.2.7 Shared configuration using includes
      8. 1.2.8 Dynamic configuration updates
    3. 1.3 Runtime composition with features and services
      1. 1.3.1 Feature management
      2. 1.3.2 Automatic service discovery
    4. 1.4 Frictionless application development
      1. 1.4.1 Quick start using dropins
      2. 1.4.2 Configuration-based application deployment
      3. 1.4.3 Using loose configuration for applications
      4. 1.4.4 Configuring an application’s context root
      5. 1.4.5 Compatibility with WebSphere Application Server
    5. 1.5 Product extensions (new in Version 8.5.5)
  5. Chapter 2. Installation
    1. 2.1 Installing the WebSphere developer tools
      1. 2.1.1 Installation from Eclipse Marketplace
      2. 2.1.2 Installation from the WASdev community site
      3. 2.1.3 Installation from downloaded installation files
    2. 2.2 Installing the Liberty profile
      1. 2.2.1 Installation using the Liberty profile developer tools
      2. 2.2.2 Installation using the command line
      3. 2.2.3 Installation on z/OS
      4. 2.2.4 The Liberty profile runtime environment and server directory structure
    3. 2.3 Configuring the server runtime JDK
      1. 2.3.1 Defining the JRE from within workbench
      2. 2.3.2 Configuring the system JRE
      3. 2.3.3 Using server.env to define the JRE
      4. 2.3.4 Specifying JVM properties
    4. 2.4 Starting and stopping a Liberty profile server
      1. 2.4.1 Starting and stopping the server using the command line
      2. 2.4.2 Starting and stopping the server from the workbench
  6. Chapter 3. Developing and deploying web applications
    1. 3.1 Developing applications using the Liberty profile developer tools
      1. 3.1.1 Using the tools to create a simple servlet application
      2. 3.1.2 Developing and deploying a JSP application
      3. 3.1.3 Developing and deploying a JSF application
      4. 3.1.4 Developing and deploying JAX-RS applications
      5. 3.1.5 Using Context and Dependency Injection in web applications with the Liberty profile developer tools
      6. 3.1.6 Developing Java Message Service web applications with the Liberty profile developer tools
      7. 3.1.7 Developing JAX-WS web services applications with the Liberty profile developer tools
      8. 3.1.8 Debugging applications with the Liberty profile developer tools
    2. 3.2 Developing outside the Liberty profile developer tools
      1. 3.2.1 Feature enablement
      2. 3.2.2 Dynamic application update
      3. 3.2.3 Common development configuration
      4. 3.2.4 Dynamic configuration
      5. 3.2.5 API JAR files
      6. 3.2.6 Debugging applications
      7. 3.2.7 Using Maven to automate tasks for the Liberty profile
      8. 3.2.8 Using ANT to automate tasks for the Liberty profile
    3. 3.3 Controlling class visibility in applications
      1. 3.3.1 Using shared libraries in applications
      2. 3.3.2 Creating a shared library in the Liberty profile developer tools
      3. 3.3.3 Creating a shared library outside of the tools
      4. 3.3.4 Using libraries to override Liberty profile server classes
      5. 3.3.5 Global libraries
      6. 3.3.6 Using a classloader to control API visibility
  7. Chapter 4. Iterative development of OSGi applications
    1. 4.1 Introduction to OSGi applications in Liberty profile
    2. 4.2 Developing OSGi applications in the Liberty profile developer tools
      1. 4.2.1 Using the tools to build an OSGi application
      2. 4.2.2 Using the tools to deploy and test an OSGi application
      3. 4.2.3 Adding an OSGi web application bundle
    3. 4.3 Developing OSGi applications outside Liberty profile developer tools
      1. 4.3.1 Building and deploying OSGi applications outside of the tools
      2. 4.3.2 Using Maven to automate OSGi development tasks
      3. 4.3.3 Using ANT to automate OSGi development tasks
  8. Chapter 5. Data access in the Liberty profile
    1. 5.1 Accessing data using a data source and JDBC
      1. 5.1.1 Basic concepts for configuring data access in Libertyprofile server
      2. 5.1.2 Adding a data source using Liberty profile developer tools
      3. 5.1.3 Adding a data source outside the Liberty profile developer tools
      4. 5.1.4 Using the data source in an application
      5. 5.1.5 Defining a data source in an application
      6. 5.1.6 Using application-defined data sources
      7. 5.1.7 Testing the data sources
      8. 5.1.8 Dynamic configuration updates for data sources
    2. 5.2 Developing JPA applications
      1. 5.2.1 JPA applications in the Liberty profile developer tools
      2. 5.2.2 JPA applications outside the Liberty profile developer tools
    3. 5.3 Developing Enterprise Java Bean applications
      1. 5.3.1 Developing EJB applications in the Liberty profile developer tools
      2. 5.3.2 EJB applications outside the Liberty profile developer tools
    4. 5.4 Developing message driven bean applications
      1. 5.4.1 Developing message driven bean applications in the Liberty profile developer tools
      2. 5.4.2 MDB applications outside the Liberty profile developer tools
    5. 5.5 Data access with MongoDB
      1. 5.5.1 Developing MongoDB applications with the Liberty profile developer tools
      2. 5.5.2 Developing MongoDB applications outside of the Liberty profile developer tools
  9. Chapter 6. Configuring application security
    1. 6.1 Enabling SSL
      1. 6.1.1 Configuration using the WebSphere developer tools
      2. 6.1.2 Configuration using the command line
    2. 6.2 HTTPS redirect
    3. 6.3 Form login
      1. 6.3.1 Defining the basic user registry
      2. 6.3.2 Updating an application to support Form Login
      3. 6.3.3 Defining bindings between the application and the server
    4. 6.4 Securing JMS applications
      1. 6.4.1 Setting up user authentication
      2. 6.4.2 Setting up user authorization
    5. 6.5 JAX-WS security
    6. 6.6 Securing MongoDB applications
  10. Chapter 7. Serviceability and troubleshooting
    1. 7.1 Trace
      1. 7.1.1 Inspecting the output logs
      2. 7.1.2 Configuration of an additional trace
    2. 7.2 Server memory dump
    3. 7.3 MBeans and JConsole
  11. Chapter 8. From development to production
    1. 8.1 Configuring a server for production use
      1. 8.1.1 Turning off application monitoring
      2. 8.1.2 Generating a web server plug-in configuration
    2. 8.2 Using the package utility
      1. 8.2.1 Packaging a Liberty profile server by using the WebSphere developer tools
      2. 8.2.2 Packaging a Liberty profile server from a command prompt
      3. 8.2.3 Using the Job Manager to package and distribute Libertyprofile servers
    3. 8.3 Moving an application to the full profile
      1. 8.3.1 Programming model differences between full profile and Liberty profile
      2. 8.3.2 Configuration differences between full profile and Liberty profile
    4. 8.4 Using the Liberty profile on z/OS
  12. Chapter 9. Developing and deploying custom features (new in Version 8.5.5)
    1. 9.1 Considerations for creating custom features
    2. 9.2 Defining a custom feature
      1. 9.2.1 Elements of a feature
      2. 9.2.2 Visibility constraints for features, packages, and services
      3. 9.2.3 Subsystem content: Writing a minify-compatible feature
      4. 9.2.4 Using the tools to create a custom feature
      5. 9.2.5 Automatic provisioning: Creating an auto-feature
      6. 9.2.6 Packaging native code in your bundles
      7. 9.2.7 Packaging features for delivery
    3. 9.3 Liberty product extensions
  13. Appendix A. Additional material
    1. Locating the web material
    2. Using the web material
  14. Related resources
    1. Online resources
    2. Help from IBM
  15. Back cover