
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.
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.
The video shows CDI producers, their power and how to define and use them.
The video shows the necessity of and how to define and use CDI qualifiers. It covers how to define custom qualifier annotations.
The video explains the different scopes or managed beans. It covers both EJB and CDI, their differences and similarities.
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.
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.
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.
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.
This video shows how to send custom HTTP responses with JAX-RS. Examples for custom responses are HTTP status codes or header fields.
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.
This video shows how to handle exception that occur within our application in JAX-RS.
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.
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.
This video shows how to define and use application server datasources. The datasources are used to access relational databases.
This video shows how to use technical transaction that handle database queries. It covers how exceptions that occur during the active transaction are handled.
This video shows how to define and bind interceptors. Interceptors are used to interrupt the execution of methods and inject custom logic.
This video shows how custom interceptors are bound and activated via custom interceptor binding annotations. This approach minimizes coupling in our application.
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.
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.
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.
This video shows how to define asynchronous EJB methods. It covers the possibilities and implications of asynchronous execution within EJBs.
This video shows how to define and fire asynchronous CDI events with both asynchronous EJB methods and CDI definitions.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
This video shows how to access WebSocket endpoints by the WebSocket API. It also covers how client connections are bootstrapped.
This video gives an overview of the entire course.
This video introduces Docker containers. It shows how to start Docker containers from Docker images. It covers how the commands that run in the containers are specified.
This video explains the life cycle of Docker container. It shows how the statuses of containers that are started from images look like and how long containers live.
This video shows how to create custom Docker images. It shows how to write basic Dockerfiles that are the source for Docker images. It also covers how Docker image tags should be chosen.
This video shows how to define and use volumes to map files and directories from the Docker host system into running containers. It covers the challenges that come with volumes.
This video shows how to define networks for running Docker containers. It shows how we can access Docker containers from the Docker host and from other running containers.
This video shows how to distribute Docker images via Docker registries. It shows the different image naming schemes that use the DockerHub or private repositories, respectively.
This video shows how to debug and troubleshoot running Docker containers. It shows how to access log events, execute commands and open a remote shell.
This video shows how to build and package Java Enterprise applications. It covers the different modern archive deployment options and will introduce the coffee-shop example project that is used throughout this video course. It also shows how to build Java EE projects using Maven.
This video shows how to build an existing Java EE application into a Docker image. It covers how to create a Dockerfile as part of the project sources.
This video shows the potential challenges of running Java applications in Docker containers. It covers how container resource limits are defined and handled correctly.
This video shows how to make the most of Docker’s copy-on-write file system by separating the application from the application runtime. Java EE supports this approach. The video covers what to take care of when creating Docker images.
This video examines what aspects are there to configure in a running Java EE application. We’ll see what to configure on both the application server and application level. The video shows how our example Java EE application is configured.
This video shows which configuration aspects can be made in an application server that run in Docker containers. It shows how we can modify the server installations.
This video shows which configuration aspects can be made in a dockerized Java EE application. It shows how we can modify application configuration.
This video shows how to communicate between Docker containers that run in Docker networks. It shows how containers are accessible via their names and how that can be used to configure application services.
This video shows how to run Docker images in a Kubernetes cluster. It introduces the kubectl command line and the Kubernetes YAML resource definitions.
This video shows how Kubernetes pods are accessed via services. We’ll see how to define Kubernetes services and how to connect them to our pod workloads.
This video shows how Kubernetes deployments manage our application pods in the cluster. We’ll see how to define deployment resources instead of pods directly.
This video shows how Kubernetes deployments can deploy new software versions with zero-downtime. We’ll see how Kubernetes performs zero-downtime deployments and how to define readiness and liveness probes.
This video shows an example Kubernetes zero-downtime deployment of the coffee-shop project. We’ll see how we can use pre-stop actions to smooth the transition between application versions.
This video shows how to dynamically configure Kubernetes applications using config map and secret resources. We’ll see how to inject the configured values into running containers.
This video shows how to troubleshoot Kubernetes workloads. We’ll see how to access logs, remotely execute commands in pods, forward pod ports and how to read Kubernetes events.
This video shows how to configure enterprise applications with the means that are available from Kubernetes. We’ll see how we can integrate the configured values from the containers into the application code using environment variables and properties files, respectively.
This video shows how to manage and use credentials in enterprise applications. We’ll see the challenges credentials introduce and how to create and use Kubernetes secrets. The secrets will be injected into running applications.
This video shows how to add persistent storage in Kubernetes clusters by defining persistent volume resources. We’ll see how to create and bind volumes and enable containers to write and access files persistently. We’ll also cover the challenges with persistence in clusters.
This video shows how to access Kubernetes services from within clusters via service names. We’ll see the benefits of cluster-internal name resolution and how we can use that feature in enterprise applications.
This video shows how to set limits to workload resources. We’ll cover the different mechanisms to restrict container resources in Kubernetes clusters. We’ll also see what to take into considerations for Java applications.
This video shows one way how to define and manage multiple application environments by using Kubernetes namespaces. We’ll see which resources are affected by the namespace scope, how to create namespaces, and how to manage enterprise projects in regard to multiple environments.
Java EE provides a standard set of specifications that can be used to develop standardized applications, independent of the vendor. Enterprise applications do not change that often, and hence we need a robust platform such as Java EE to ensure sustainability. A lot of enterprises migrate their runtime environments to platforms that are based on Docker and Kubernetes. Container technologies, in combination with orchestration, provide significant advantages in the way companies deploy and operate their enterprise software.
This comprehensive 2-in-1 course teaches you how to develop enterprise applications using the Java Enterprise platform and modern APIs. It covers each and every concept of the Java EE platform with the help of practical examples making it easy for you to understand and implement in your own applications. You will also learn to package and deploy Java EE 8 applications on Docker and Kubernetes.
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Learning Java EE 8, course starts off by exploring the core Java EE components. You will then learn about HTTP endpoints. You will also learn how to map domain entities with JPA. Next, you will understand how interceptors realize technical cross-cutting concerns. You will learn to access external systems. Finally, you will learn about the asynchronous communication protocol.
The second course, Containerizing Java EE 8 Apps Using Docker and Kubernetes, begins with a practical approach to show you how you can use Docker in Java EE 8 and how to troubleshoot containers. You will then learn learn how to run Java EE in containers. You will also learn to configure containerized applications. Next, you will learn to orchestrate containers using Kubernetes. Finally, you’ll be able to integrate Java EE applications into Docker and Kubernetes.
By the end of this Learning Path, you'll be able to build, package, and deploy your Java EE 8 applications on Docker and Kubernetes.
Meet Your Expert(s):
We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth: