We may earn an affiliate commission when you visit our partners.
Packt Publishing

The Java Enterprise Edition is one of the leading application programming platforms for enterprise Java development. With Java EE 8, it is easier to develop modern and lightweight web services with the latest API additions and improvements.

This comprehensive 2-in-1 course is comprehensive, example-oriented guide covering APIs and why approaches are necessary in modern Java EE 8.Demonstrates how to implement application business logic with minimal boilerplate code. You’ll design modern, stylish web services with Java EE APIs. You’ll focus on the latest Java EE 8 APIs and secure your web services with JSON Web token.

Read more

The Java Enterprise Edition is one of the leading application programming platforms for enterprise Java development. With Java EE 8, it is easier to develop modern and lightweight web services with the latest API additions and improvements.

This comprehensive 2-in-1 course is comprehensive, example-oriented guide covering APIs and why approaches are necessary in modern Java EE 8.Demonstrates how to implement application business logic with minimal boilerplate code. You’ll design modern, stylish web services with Java EE APIs. You’ll focus on the latest Java EE 8 APIs and secure your web services with JSON Web token.

Contents and Overview

This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Learning Java EE 8, covers full-fledged application development with the latest API'sThis course will teach you important core JAVA EE components. You’ll also learn about the asynchronous communication protocol. You’ll also develop a car management enterprise application. It also answers questions related to how Java EE compares to the Java language, should developers transition to it, and what types of application would benefit from it.

The second course, Building Web Services with Java EE 8, covers creation of modern RESTful web services with the Java EE 8 API.This course will teach you how to develop state-of-the-art RESTful web services with the latest Java EE 8 APIs. You’ll implement, build, and package you're first working web service as a prototype. You’ll also explore advanced web service topics such as validation, JWT security, and diagnosability.

By the end of this course, you’ll have a thorough understanding of the Java EE 8 APIs required for modern RESTful and lightweight web service development as well as full-fledgedenterprise applications.

About the Authors

  • Sebastian Daschneris a Java freelancer working as a consultant, author, and trainer and is enthusiastic about programming and Java (EE). He is the author of the book Architecting Modern Java EE Applications. Sebastian participates in the JCP, helping to form the future standards of Java EE; serving in the JAX-RS, JSON-P, and Config Expert Groups; and collaborating on various open source projects. For his contributions to the Java community and ecosystem, he was recognized as a Java Champion, Oracle Developer Champion, and double 2016 JavaOneRockstar. Sebastian is a regular speaker at international IT conferences such as JavaLand, JavaOne, or Jfokus. Together with Java Community Manager Steve Chin, he has visited dozens of conferences and Java User Groups by motorbike. Steve and Sebastian have launched JOnsen, a Java conference held at a hot spring in the countryside of Japan. Sebastian has been working with Java for more than 8 years. Besides Java, Sebastian is also a heavy user of Linux and container technologies. He evangelizes computer science practices on his newsletter, and on Twitter via @DaschnerS. When not working with Java, he also loves to travel the world, either by plane or motorbike.
  • Mario-Leander Reimer is a chief technologist for QAware GmbH. He is a senior Java developer with several years of experience in designing complex and large-scale system architectures. He continuously looks for innovations and ways to combine and apply state-of-the-art technology and open source software components in real-world customer projects. He studied computer science at Rosenheim and Staffordshire University and he is teaching cloud computing as a part-time lecturer.
Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Comprehensive, example-oriented guide covering apis and why approaches are necessary in modern java ee 8
  • Demonstrates how to implement application business logic with minimal boilerplate code
  • Design modern, stylish web services with java ee apis
  • Focus on the latest java ee 8 apis and secure your web services with json web token
  • Gain advanced knowledge of restful web services and the jax-rs api provided by the java ee

Syllabus

Learning Java EE 8

This video will give you an overview about the course.

The video shows how to implement business domain logic in Java EE and plain Java. It covers how Java EE encourages business-oriented solutions. Basic Java EE APIs is introduced.

  • Define business domain classes, their properties and relations in plain Java
  • Define a business boundary which implements the use cases
  • Delegate complex business logic to injected beans 
Read more

The video shows the differences between the EJB and CDI APIs. It covers when to use which and what needs to be done in order to setup the managed beans.

  • Comprehend the main differences between EJBs and CDI managed beans
  • Comprehend the similarities in the usage of EJBs and CDI managed beans
  • Setup a basic beans.xml to configure CDI for injection of all beans 

The video shows CDI producers, their power and how to define and use them.

  • Inject a component that is not a managed bean or that needs more flexibility
  • Define CDI producer methods or producer fields
  • Comprehend the similarity in using and injecting beans and produced values 

The video shows the necessity of and how to define and use CDI qualifiers. It covers how to define custom qualifier annotations.

  • Identify that an injected value cannot be identified unambiguously
  • Bind CDI producers to injection points using qualifiers
  • Define custom qualifier annotations that allow type-safety 

The video explains the different scopes or managed beans. It covers both EJB and CDI, their differences and similarities.

  • Comprehend the EJB stateless, stateful and singleton scope
  • Injecting CDI managed beans without scope definitions results in the dependent scope
  • Define CDI scopes on the bean or producer definitions to modify the bean’s scope and life cycle 

The video explains how to model and implement domain events using CDI. CDI comes with a powerful eventing mechanism which allows to decouple event creation from event handling.

  • Define business-motivated domain events as plain Java classes
  • Inject and fire the event during the business process execution using CDI
  • Define an event handling mechanism that processes the fired events 

This video shows how to define JAX-RS resources that make an Java EE application accessible via HTTP. It covers how JAX-RS applications are bootstrapped and how Java types are translated into HTTP payloads.

  • Set up the JAX-RS application by configuring the base application path
  • Define a JAX-RS resources, a facade to the business boundary using the JAX-RS annotations
  • Produce and accept the HTTP payloads in the desired content types. JAX-RS will automatically marshal the Java types 

This video shows how to declaratively marshal Java types to JSON definitions and back. It covers how JAX-RS integrates with JSON-B definitions out of the box.

  • Customize the default Java type to/from JSON mapping via JSON-B annotations
  • Use JSON-B to marshal Java types by defining JAX-RS resources to produce or accept JSON
  • Declaratively enhance or change the Java type definitions if required 

This video shows how to programmatically marshal Java types to JSON definitions and back using JSON-P. It covers how JAX-RS integrates with JSON-P.

  • Identify JSON mappings that are not sufficiently covered by JSON-B
  • Define JSON structure creation programmatically using the JSON-P builder API
  • Integrate JSON-P types with JAX-RS resources for both request and response bodies. 

This video shows how to send custom HTTP responses with JAX-RS. Examples for custom responses are HTTP status codes or header fields.

  • Use the Response type from JAX-RS to build custom HTTP responses.
  • Send different status codes if the default statuses don’t match your requirements
  • Use the UriInfo context object to build URIs that point to your resources 

This video shows how to validate HTTP messages using Bean Validation and JAX-RS. It covers how to define custom validation constraints that match the application business logic.

  • Use the @Valid annotation to instruct JAX-RS to validate Java objects
  • Define Bean Validation annotations on the Java types that need to be validated
  • Define custom validation constraint annotations to implement custom validation logic 

This video shows how to handle exception that occur within our application in JAX-RS.

  • Implement the ExceptionMapper type with the custom exception mapping logic
  • Define the ExceptionMapper for a specific exception and activate it via @Provider
  • Define a ConstraintViolationExceptionMapper to map a failed validation to a custom HTTP response 

This video shows how JPA is used to map domain entities to the database. It covers how to bootstrap JPA for enterprise applications and how to declaratively define persistence mappings.

  • Define a persistence.xml mapping file and a one or more persistence units for your application
  • Map domain entities using JPA annotations such as @Entity
  • Use the EntityManager type to persist and acquire persisted entities 

This video shows how to define entity relations that are part of the business domain. It covers which JPA definitions are required to specify the relation mapping in the database tables.

  • Define the relation to enum values using @Enumerated
  • Define the relation to other entities using @OneToOne, @OneToMany, @ManyToOne and @ManyToMany
  • Define join columns and their properties via the annotation properties 

This video shows how to define and use application server datasources. The datasources are used to access relational databases.

  • Use the default datasource of the application server if only one database is required
  • Define persistence units with datasource JDNI names for multiple databases
  • Specify the datasource properties in the application server configuration 

This video shows how to use technical transaction that handle database queries. It covers how exceptions that occur during the active transaction are handled.

  • Use the default EJB mechanism that starts technical transactions for business methods
  • Use the transaction type definition to control the logical flow of transactions
  • Define rollback behaviors for specific exception types 

This video shows how to define and bind interceptors. Interceptors are used to interrupt the execution of methods and inject custom logic.

  • Define an Interceptor class and bind it to a business method using @Interceptors
  • Implement the custom interception logic in the interceptor method
  • Inject and use managed beans in the interceptor class 

This video shows how custom interceptors are bound and activated via custom interceptor binding annotations. This approach minimizes coupling in our application.

  • Define an interceptor binding annotation with @InterceptorBinding
  • Annotate the interceptor and the business method or bean with the interceptor binding
  • Activate the bound interceptor via beans.xml or a specified priority 

This video shows how to configure Java Enterprise application via CDI. It covers how CDI producers fulfill to define custom configuration requirements. The example configuration load the configured values from an application properties file.

  • Identify and inject configured values into managed beans
  • Define CDI producer methods that lookup and expose configuration values
  • Specify custom qualifiers to further qualify the desired configuration values 

This video shows how and when to use caching. It covers how to build a simple yet effective custom cache and includes an outlook to the JCache API.

  • Identify and evaluate the requirements for caching first
  • Define custom caches via application scoped or singleton beans
  • Use JCache or vendor-specific solutions if custom implementations are not sufficient or become too complex 

This video shows how and when to include logging in enterprise applications. It covers the shortcomings of traditional logging, which other solutions are reasonable and possible.

  • Identify and evaluate the motivation for logging and look for potential different solutions
  • Identify and simplify log invocations using custom log facades
  • Log errors that can not be recovered from using the custom log facade 

This video shows how to define asynchronous EJB methods. It covers the possibilities and implications of asynchronous execution within EJBs.

  • Annotate EJB business methods with @Asynchronous to invoke them asynchronously
  • Define Future return types if a direct result is required
  • Beware of scopes of managed beans in asynchronous methods 

This video shows how to define and fire asynchronous CDI events with both asynchronous EJB methods and CDI definitions.

  • Use asynchronous EJB methods to handle CDI events asynchronously
  • Define and fire CDI events using the fireAsync method
  • Observe events that are fired via the fireAsync method with @ObservesAsync 

This video shows what container-managed threads are, what the threading requirements for enterprise applications are and which Java EE functionalities support developers. It covers the required APIs to use container-managed threads.

  • Acquire and use the ManagedExecutorService to execute functionality within its own thread
  • Avoid using application-managed threads or functionality that starts own threads, such as parallel streams
  • Use CompletableFutures with the acquired ManagedExecutorService to implement more complex functionality 

This video shows how to define application timers via EJBs and CDI managed beans. It covers which APIs to use to define timers and scheduled jobs.

  • Use the @Schedule annotation to define cron-like method invocations
  • Beware of bean scopes when defining application timers
  • Acquire and use the ManagedScheduledExecutorService to define scheduled jobs on CDI managed beans 

This video shows the motivations behind asynchronous JAX-RS resources and how to make use of them. It covers common use cases for this functionality.

  • Define a @Suspended AsyncResponse to suspend the HTTP request thread
  • Acquire and use the ManagedExecutorService to execute the business logic
  • Alternatively, use asynchronous EJB methods or define JAX-RS resources with a CompletionStage return type 

This video shows how to access HTTP resources using the JAX-RS client. It covers how web targets are defined and used to send requests and read responses from and to Java types, respectively.

  • Create an instance of the JAX-RS client using the ClientBuilder functionality
  • Define a WebTarget that accesses the HTTP resources
  • Use the invocation builder functionality to invoke targets and read responses 

This video shows how to use the JAX-RS client to retrieve collection resources and automatically map them to corresponding Java collection types. It also covers path templates.

  • Use the JSON-P JsonArray type to conveniently map JSON collection responses
  • Use JAX-RS’es GenericType to retrieve Java collection response types
  • Use the path template functionality of WebTargets to define and resolve path variables 

This video shows how to handle client exceptions and potential errors. It also covers how to make client invocations more resilient by defining different type of timeouts.

  • Beware of potential runtime exceptions that can occur on client invocations
  • Potentially use Interceptors to catch client exceptions
  • Define connection and read timeouts to make HTTP invocations resilient 

This video shows how to use the asynchronous and reactive JAX-RS client functionality. It covers how to use the CompletableFuture type in client invocations and the rx invocation builder.

  • Use CompletableFutures to manually wrap client invocations into separate execution paths
  • Use JAX-RS’es rx invocation builder to conveniently receive a CompletionStage return type
  • Combine the CompletionStage or CompletableFuture types to compute the desired results 

This video shows how to use the JAX-RS API to define and implement Server-Sent Events (SSE) resources. It covers the required JAX-RS types and APIs.

  • Define SSE JAX-RS resource methods using the SSE Java types
  • Use the Sse, SseBroadcaster and SseEventSink types to send SSE messages to connected clients
  • Manually resend events using the last event ID, if required 

This video shows how to consume Server-Sent Events (SSE) resources both on the command line and by using the JAX-RS SSE client. It also cover the last event ID HTTP header that controls which data is being resent.

  • Use the SseEventSource type to access SSE resources from web targets
  • Register an event consumer that will be invoked on arriving events
  • Open the connection to the created SseEventSource 

This video shows how to use the Java EE’s WebSocket API to define server endpoints. It also covers how to define MessageDecoders and Encoders.

  • Define a ServerEndpoint that will be invoked for WebSocket connections
  • Define corresponding MessageDecoders and Encoders for the message Java types
  • Use the bidirectional remote object to respond to messages 

This video shows how to access WebSocket endpoints by the WebSocket API. It also covers how client connections are bootstrapped.

  • Define a ClientEndpoint that will be invoked for WebSocket connections
  • Define corresponding MessageDecoders and Encoders for the message Java types
  • Programmatically create a client to initialize the WebSocket connection 

Java EE has come a long way. In the past it has been considered heavy weight, but these times are long over. Java EE is the most lightweight enterprise framework currently out there. This video explains why.

  • Understand the industry standard with a widespread knowledge base
  • Integrate specifications with a lightweight programming model
  • Discuss on no external dependencies, thin deployment artifacts, and modern app servers

The Java EE platform has a wide variety of different APIs for the development of modern enterprise applications.

This video presents the different APIs of Java EE 8 and their latest advances, with a focus on the more microservice relevant APIs.

  • Add improved API integration and support for SSE using JAX-RS 2.1
  • Add support for JSON Pointer and JSON Patch using JSON-P 1.1
  • Discuss about JSON-B 1.0 as standard way to convert between JSON and POJOs 

What is required to develop, build and run your first Java EE 8 powered microservice? This is the question we are going to answer in this video by developing a small Hello World web service.

  • Add Java EE 8 API dependency to Maven POM
  • Add a JAX-RS configuration class and specify application path
  • Add a REST resource implementation with a @GET resource method

Docker is the de-facto standard when it comes to packaging web services. This video shows you how to build a Java EE 8 based microservice image using Payara and run it as a container.

  • Write a Dockerfile using Payara Server
  • Write a Dockerfile using Payara Micro
  • Build and run the Docker image

With Java EE 8 and JAX-RS 2.1 the domain logic can easily be exposed via a REST API. Often the entities are exposed as resources offering basic CRUD functionality. This video shows how this can be done.

  • Add a resource implementation class with a @Path annotation
  • Use @Inject to obtain reference to domain logic bean
  • Add @GET, @POST, @PUT, and @DELETE methods for CRUD semantics

Proper REST APIs allow for the navigation to related resources using the URI. Usually, this is achieved by nesting the path.

In JAX-RS, you can use sub-resource locators to return nested REST resource implementations. This video shows different approaches to using sub resources.

  • Define @Path annotated sub resource locator method
  • Either construct and return resource instance or resource class directly
  • Use @Inject ResourceContext to obtain fully managed resource instance

According to the REST maturity model, you should make use of HTTP status codes to signal erroneous behavior. This video shows different approaches to error handling in JAX-RS.

  • Explicitly set the HTTP status code on the Response instance
  • Throw a WebApplicationException on its subclasses
  • Implement ExceptionMapper interface for custom error handling

When working with web services, you also need to be able to call them from within your program or service.

This video shows how to implement the client-side of a web service using the JAX-RS client APIs.

  • Construct and configure a JAX-RS client instance
  • Create a web target instance for the web service base URI
  • Invoke the REST endpoints and obtain the response

Automated testing is an essential part in professional software engineering. This video gives an overview of different test strategies and shows to web service APIs using the Jersey Test Framework and the Test Containers Framework.

  • Add dependencies to Jersey Test Framework and Test Containers Framework
  • Implement the JerseyTest base class and add simple REST test case
  • Construct test container from Dockerfile and implement integration test

Content-types and content negotiation play a central role in your REST APIs. It can be used to accommodate different clients and also different API versions. This video will focus on the basics of using content types and smart content negotiation.

  • Use @Produces and @Consumes to specify content types
  • Specify custom content types for API versioning
  • Smart content negotiation using quality from server factor

JSON-B is the new API to marshall and unmarshall POJOs to and from JSON. This video will show how to use the API implicitly in your REST resources, customize the marshalling behavior using annotations and also how to use JSON-B programmatically.

  • Implicit JSON marshalling and unmarshalling in REST resources
  • Look at custom JSON marshalling using JSON-B annotations
  • Explicit usage of JsonbConfig and Jsonb instance using JsonbBuilder 

Sometimes more control over generating and parsing JSON structures is required. This is what the JSON-P API is for. In this video we show the basics of using JSON-P as well the additions made in Java EE 8 such as the JSON Pointers, Patch and Diff APIs.

  • Use JSON-P builders to construct JSON arrays and objects
  • Use JSON Pointers to access JSON structures
  • Use JSON Patch and Diff to modify JSON structures

Sophisticated use cases require traversing the relations between your REST resources. This video will demonstrate how a hypermedia-driven REST API can be constructed using JSON-P and JAX-RS.

  • Use JSON-P to construct hypermedia enabled JSON structures
  • Use @Context UriInfo to construct resource URIs programmatically
  • Set link headers with URIs on the HTTP response

Usually request processing on the server works in a synchronous mode. Under high load with lots of concurrent connections, there are a lot of wasted resources and the server does not scale that well. In this video, we will see how asynchronous processing addresses this.

  • Separate request I/O threads from processing threads using thread pools
  • Free request threads to accept new connections
  • Improve overall performance and throughput

The JAX-RS APIs support asynchronous processing of requests. This video shows the basic server-side implementation of async REST resources.

  • Implement a public void method in the JAX-RS resource class
  • Add an @Suspended AsyncResponse method parameter
  • Call the resume method on AsyncResponse in separate thread

The Java EE Concurrency API can be used nicely in conjunction with the JAX-RS async APIs. This video shows how it is done.

  • Inject and use ManagedExecutorService in resource class
  • Use a TimeoutHandler to customize timeout response
  • Use CompletableFuture to run processing and apply response

Asynchronous processing can also be used at the client-side. This video shows the basic usage of the asynchronous JAX-RS Client API.

  • Use the async() method for a Future to return value
  • Implement InvocationCallback to respond to completed and failed events
  • Use CompletableFuture for fluent request chaining

Traditional web services usually apply a request-response style communication approach. This video shows how Server-sent Events can be used to send data from the server to the client, maybe for a stock ticker or to display live telemetry data.

  • SSE is a HTTP based API dedicated to Push
  • SSE allows for one way communication between server and client only
  • Stream of text data encoded as UTF-8 separated by newline

This video shows how SSE can be implemented on the server-side using the new Java EE 8 JAX-RS APIs.

  • Use content type text/event-stream to connect to stream
  • Inject SseEventSink as @Context method parameter
  • Use @Context Sse instance to build event instances

In order to receive Server-sent Events, the client has to issue a GET request using the text/event-stream media type. This video shows how to implement a SSE client using the JAX-RS API as well as using JSP, HTML, and JavaScript.

  • Construct SseEventSource instance from JAX-RS WebTarget for endpoint URL
  • Register consumer for inbound SSE event with event source
  • Open event source to start receiving events

SSE also allows to broadcast events to all registered event sinks. This video shows how SSE broadcasts are implemented on the server-side using JAX-RS as well as on the client-side using JSP, HTML, and JavaScript.

  • Build SseBroadcaster instance using injected Sse @Context instance
  • Register @Context SSE event sink instance with broadcaster
  • Construct SSE event and send instance using broadcaster instance

Good REST APIs validate the requests they accept and return HTTP status code 400 BAD_REQUEST if invalid. This video shows how to implement this behavior easily by combining Javax.Validation and JAX-RS.

  • Combine JAX-RS APIs and Javax.Validation to implement DbC
  • Use validation annotations to validate parameter values
  • Use @Valid to validate POST request body POJOs

Token-based authentication and authorization is becoming popular when implementing webservices. JSON Web Tokens (JWT) are a way to represent public claims using JSON. This video shows how to extract and validate JWT for your REST resources using a JAX-RS request and response filter.

  • Implement container request and response filter to extract JWT token
  • Use 3rd party library to decode extracted JWT token
  • Enable filter on JAX-RS resource with custom @NameBinding annotation

In a highly distributed environment, the diagnosability triangle of logging, metrics, and tracing play a crucial role. Java EE 8 and JAX-RS provides a lot of extension points for third-party open source components to retrofit these features. This video shows how you can add logging, metrics, health checks, and tracing to your Java EE 8 webservice with minimal code.

  • Use Jersey LoggingFeature for request-response logging
  • Use Eclipse MicroProfile for metrics and health checks
  • Use OpenTracing APIs and Jaeger for tracing

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers Java EE 8 APIs, which are essential for developing modern, lightweight web services and full-fledged enterprise applications, making it highly relevant for Java professionals
Taught by Sebastian Daschner, a Java Champion and expert in Java EE, which adds credibility and practical insights to the learning experience
Explores RESTful web services with the Java EE 8 API, which is a core skill for building modern, scalable applications
Includes hands-on examples of building and packaging web services, which allows learners to immediately apply their knowledge and build a portfolio
Requires familiarity with Java, so learners without prior experience may need to acquire foundational knowledge before taking this course
Focuses on Java EE 8, so learners should be aware that newer versions of Java EE (Jakarta EE) exist, which may have additional features and improvements

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Enterprise java ee 8 development

According to learners, this course provides a comprehensive dive into Java EE 8 for enterprise application and RESTful web service development. Students highlight the course's strength in explaining various Java EE APIs like JAX-RS, CDI, JPA, and JSON-B/P, offering practical, example-oriented guidance. Many find the hands-on coding demos and explanations of core concepts like asynchronous processing and security with JWT to be particularly valuable. Some recent reviews note that while the foundational concepts are well-taught, the focus on Java EE 8 specifically means the content is becoming somewhat outdated given the transition to Jakarta EE, presenting a potential warning for those needing the absolute latest standards. Despite potential setup challenges mentioned by a few, the course is generally seen as providing a solid understanding of the enterprise Java ecosystem at the time.
Instructor demonstrates strong expertise.
"Sebastian Daschner is clearly an expert in the field and knows his stuff."
"The instructors are knowledgeable and provide clear explanations."
"Their background in the Java EE community adds a lot of credibility."
"Found the explanations technically accurate and detailed."
Builds a solid base in enterprise Java.
"Provides a great foundation for anyone looking to get into enterprise Java development."
"Helped solidify my understanding of core EE concepts."
"Excellent for understanding the architecture and principles behind EE 8 applications."
"Gave me the necessary background to start building simple EE apps."
Uses hands-on examples to illustrate concepts.
"The examples for building REST services were very helpful and practical."
"Followed along with the coding demos and they solidified my understanding."
"The car management application example helped tie everything together."
"Appreciated the hands-on approach to learning the APIs."
Explains key Java EE 8 APIs effectively.
"The coverage of JAX-RS, CDI, and JPA is quite thorough for an introduction."
"I gained a solid understanding of the different Java EE 8 APIs needed for enterprise apps."
"Explains JSON-B, JSON-P, SSE, and WebSocket APIs well."
"Learned how to implement business logic using CDI and EJBs effectively."
Some learners faced challenges with setup.
"Struggled a bit getting the Payara server and Maven dependencies configured correctly."
"Initial setup felt a bit cumbersome, leading to frustration."
"Needed to troubleshoot environment issues independently."
"The setup process wasn't as smooth as I hoped."
Focus on EE 8 raises relevance concerns.
"While the concepts are good, focusing only on Java EE 8 means it's not the latest standard (Jakarta EE)."
"Wish the course covered Jakarta EE instead, as EE 8 is no longer actively developed."
"The tooling and deployment aspects might be slightly different with newer application servers and Jakarta EE."
"Good for understanding the history and basics, but less relevant for brand new projects."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Java: Enterprise App Development with Java EE 8: 2-in-1 with these activities:
Review Core Java Concepts
Reinforce your understanding of fundamental Java concepts like object-oriented programming, data structures, and algorithms, which are essential for Java EE development.
Browse courses on Java EE
Show steps
  • Review Java basics
  • Practice coding exercises
Read 'Head First Java'
Solidify your understanding of core Java concepts with a beginner-friendly guide.
Show steps
  • Read the book
  • Complete the exercises
Implement RESTful APIs
Practice building RESTful APIs using JAX-RS to gain hands-on experience with the concepts covered in the course.
Browse courses on RESTful APIs
Show steps
  • Design API endpoints
  • Implement resource methods
  • Test API functionality
Four other activities
Expand to see all activities and additional details
Show all seven activities
Blog about Java EE 8 Features
Deepen your understanding of Java EE 8 by writing a blog post explaining its key features and benefits.
Show steps
  • Research Java EE 8 features
  • Write a blog post
  • Publish the blog post
Build a Simple CRUD Application
Apply your knowledge by building a complete CRUD (Create, Read, Update, Delete) application using Java EE 8 technologies like JPA and JAX-RS.
Browse courses on CRUD
Show steps
  • Design the database schema
  • Implement JPA entities
  • Create JAX-RS endpoints
  • Implement CRUD operations
Read 'Architecting Modern Java EE Applications'
Gain deeper insights into Java EE architecture and best practices from a leading expert.
Show steps
  • Read the book
  • Analyze the examples
  • Apply the concepts
Contribute to a Java EE Project
Enhance your skills and contribute to the Java EE community by participating in an open-source project.
Browse courses on Java EE
Show steps
  • Find a suitable project
  • Understand the codebase
  • Contribute code or documentation

Career center

Learners who complete Java: Enterprise App Development with Java EE 8: 2-in-1 will develop knowledge and skills that may be useful to these careers:
Web Services Developer
A web services developer builds and maintains web services, and this course directly aligns with that career path. This course provides comprehensive training in designing and building modern RESTful web services using Java EE 8 APIs, which is the core function of such a developer. The course's emphasis on securing web services with JSON Web Token and leveraging JAX-RS API for development are crucial skills for web services developer. Moreover, the course covers implementation of business logic with minimal boilerplate code, something a web services developer would often need to do. One should take this course to gain proficiency in developing web services with Java EE 8, starting from prototypes to full-fledged applications.
Enterprise Application Developer
An enterprise application developer creates software tailored for large organizations, and this course directly supports that. The course is designed around Java EE 8, which is one of the leading platforms for enterprise Java development. An enterprise application developer will use the course's teachings to build full-fledged enterprise applications, design modern web services, and secure them using techniques like JSON Web Token. This course also teaches how to implement application business logic with minimal boilerplate code, which helps in creating manageable applications. One should take this course to learn advanced techniques for building robust and modern enterprise applications with Java EE 8.
API Developer
An API developer designs, develops, and maintains application programming interfaces, and this course provides strong skills for that field. The course's focus on creating RESTful web services with the latest Java EE 8 APIs is directly relevant to an API developer's responsibilities. An API developer will also benefit from the course's coverage of topics like securing web services with JSON Web Token (JWT), implementing business logic, and the JAX-RS API, skills needed to build robust APIs. This course will help an API developer understand the full lifecycle of web service development, from prototypes to secure, scalable applications. One should take this course because it provides advanced knowledge of the JAX-RS API and modern web service development.
Backend Developer
A backend developer focuses on server-side logic, databases, and APIs, and this course provides the exact knowledge needed for that kind of work. The course’s emphasis on building RESTful web services with Java EE 8 APIs directly applies to a backend developer's role. This course dives deep into implementing business logic, securing web services, and using Java EE 8 components for constructing enterprise applications. The backend developer role requires knowledge of how to handle asynchronous communication, which is also addressed in this course. A potential backend developer should take this class to master the technologies and practices for creating modern backend systems using Java EE.
Software Engineer
A software engineer develops and maintains software applications, and this course is directly relevant to that role. This course focuses on Java Enterprise Edition and its use in building modern web services and enterprise applications. A software engineer will use the skills learned here to design, implement, and secure these applications, as the course emphasizes using the latest Java EE 8 APIs to create robust, lightweight web services. The course also explores essential components like asynchronous communication and RESTful services, which are common in software engineering. One should take this course to build a foundation in core Java EE principles and hands-on experience with building enterprise applications.
Java Developer
A Java developer writes software using the Java programming language, and this course provides the skills they need for enterprise applications. The course focuses on Java EE 8, a platform for developing enterprise-level applications. A Java developer will benefit from the course's coverage of APIs and their usage in modern Java EE 8, implementing application business logic, securing web services, and creating state-of-the-art web services. The course also delves into core Java EE components, asynchronous communication, and creating full-fledged enterprise applications. A Java developer will find this course useful in mastering the advanced techniques needed for Java enterprise software development.
Microservices Developer
A microservices developer constructs small, independent services, and this course directly supports that type of work. The course emphasizes the use of Java EE 8 to build modern and lightweight web services, which is a core component of microservices architecture. A microservices developer will benefit from the course's training on implementing business logic with minimal boilerplate code, design of stylish web services with Java EE APIs, and securing them using JSON Web token. The course also covers the latest Java EE 8 APIs, asynchronous communication protocols, and building RESTful web services, all of which are critical for microservices development. A potential microservices developer should take this class to gain an understanding of the frameworks and techniques used in the domain.
Cloud Application Developer
A cloud application developer builds and deploys applications on cloud platforms, and this course is directly relevant to this role. The course's emphasis on Java Enterprise Edition, particularly building RESTful web services, aligns with the needs of cloud-based applications. A cloud application developer requires knowledge of how to build secure, scalable, and lightweight web services, and this course covers those topics extensively with reference to Java EE 8 APIs. The course also touches on important topics for cloud development such as using JSON web token (JWT) for security. A cloud application developer should take this course because it directly provides many of the technologies used in cloud environments.
Full-Stack Developer
A full stack developer handles both front-end and back-end development, and this course provides a good foundation for the back-end. This course delves into Java EE, a commonly used technology in back-end systems and APIs. A full stack developer will benefit from the course’s focus on building RESTful web services, implementing business logic using Java EE APIs and securing services using JWT, all of which are crucial skills for back-end development. While a full stack developer also works on the front-end, this course's coverage of core Java EE components and asynchronous communication is crucial for the server-side responsibilities. Taking this course will enhance one’s knowledge of the back-end technologies used in full stack development.
Application Architect
An application architect designs the structure of applications, and this course helps build a foundation for this role. The course covers the latest Java EE 8 APIs, which helps an application architect understand the design and implementation of modern enterprise Java applications. This course teaches how to build RESTful web services, implement business logic, and use the JAX-RS API, which are all components an architect may be responsible for designing. An application architect may find this course useful in aligning architecture with practical implementation and understanding how applications are built. One can take this course to gain knowledge in current best-practices for Java EE application architecture.
Solutions Architect
A solutions architect designs high-level architecture for software systems, and this course can help them understand the specifics of a Java EE system. While the solutions architect role does focus on the big picture, this course provides insight into the details of how specific components are developed and how they function, particularly when it comes to web services and enterprise applications. The course covers the latest Java EE 8 APIs, asynchronous communication protocols, and building RESTful web services. A solutions architect should take this course to to gain an in-depth understanding of the technologies used, which will be valuable when designing a system.
Technical Lead
A technical lead guides development teams, and this course provides a strong foundation in relevant Java EE technologies. While the technical lead role involves leadership and strategy, this course will help them understand the technical aspects of web service and enterprise application development. This course covers the latest Java EE 8 APIs, building RESTful web services, and implementing business logic, all of which are essential elements that a technical lead needs to understand. A technical lead should take this course to keep abreast of the latest practices and technologies used by their team, and to better guide the team's technical progress.
Systems Analyst
A systems analyst assesses and improves computer systems, and this course may be useful to gain a deeper understanding of Java EE. A systems analyst analyzes software systems and business processes, and this course provides a technical perspective on how Java EE applications are developed. This course’s focus on APIs, web services, and application development may assist a systems analyst in understanding the complexities and capabilities of a Java EE system. A systems analyst should take this course in order to improve their knowledge of how these systems function at a technical level, informing their recommendations for improvement.
IT Consultant
An IT consultant advises organizations on technology strategy, and this course may be useful to understand some of the technologies used in enterprise systems. While IT consultants have a general focus, this course provides insight into Java EE and the specifics of web service development, which is relevant for clients using Java applications. This course covers the latest Java EE 8 APIs and the creation of modern RESTful web services, which an IT consultant can find useful to understand technical implementations. An IT consultant might take this course to gain a deeper knowledge of Java enterprise technologies that could improve their consultations.
Database Application Developer
A database application developer creates and maintains database applications, and this course may be useful to understand how Java interacts with databases. Although this course does not focus on database development, it does cover the use of Java EE in enterprise applications, some of which will interact with databases. A database application developer may find the course useful in learning how data is handled within Java EE applications. The course covers topics like JPA mapping of data entities to databases, which is a common practice. A database application developer may take this course to enhance their understanding of how their work interacts with enterprise Java systems.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Java: Enterprise App Development with Java EE 8: 2-in-1.
Written by one of the course authors, this book provides in-depth guidance on designing and building modern Java EE applications. It covers architectural patterns, best practices, and advanced techniques for creating scalable and maintainable systems. adds more depth to the course by providing real-world examples and practical advice. It is highly recommended for those who want to become proficient in Java EE development.
Provides a visually rich format designed for the way your brain works. It's a great resource for solidifying core Java concepts before diving into the complexities of Java EE. It is particularly helpful for those who are new to Java or prefer a more engaging and less formal learning style. While not directly focused on Java EE, it builds a strong foundation for understanding the underlying principles.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser