Skip to content

aws/serverless-java-container

This branch is 390 commits behind main.

Folders and files

NameName
Last commit message
Last commit date
May 19, 2023
Nov 24, 2023
Aug 14, 2023
Jun 29, 2023
Nov 24, 2023
Nov 24, 2023
Jun 29, 2023
Nov 19, 2023
Nov 16, 2023
Nov 24, 2023
Nov 24, 2023
Nov 16, 2023
Nov 24, 2023
Jul 6, 2023
Feb 23, 2018
Feb 23, 2018
Dec 5, 2016
Feb 28, 2018
May 19, 2023
Apr 25, 2023
Jun 29, 2023
Nov 20, 2023
Nov 10, 2022

Repository files navigation

Serverless Java container Build Status Maven Central Help

The aws-serverless-java-container makes it easy to run Java applications written with frameworks such as Spring, Spring Boot, Apache Struts, Jersey, or Spark in AWS Lambda.

Serverless Java Container natively supports API Gateway's proxy integration models for requests and responses, you can create and inject custom models for methods that use custom mappings.

Currently the following versions are maintained:

Version Branch Java Enterprise support Spring versions JAX-RS/ Jersey version Struts support Spark support
1.x (stable) 1.x Java EE (javax.*) 5.x (Boot 2.x) 2.x
2.x (under development) main Jakarta EE (jakarta.*) 6.x (Boot 3.x) 3.x

Follow the quick start guides in our wiki to integrate Serverless Java Container with your project:

Below is the most basic AWS Lambda handler example that launches a Spring application. You can also take a look at the samples in this repository, our main wiki page includes a step-by-step guide on how to deploy the various sample applications using Maven and SAM.

public class StreamLambdaHandler implements RequestStreamHandler {
    private static final SpringLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;

    static {
        try {
            handler = SpringLambdaContainerHandler.getAwsProxyHandler(PetStoreSpringAppConfig.class);
        } catch (ContainerInitializationException e) {
            // if we fail here. We re-throw the exception to force another cold start
            e.printStackTrace();
            throw new RuntimeException("Could not initialize Spring framework", e);
        }
    }

    @Override
    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
            throws IOException {
        handler.proxyStream(inputStream, outputStream, context);
    }
}

Public Examples

Workshops

Videos

Java samples with different frameworks