Dropwizard is a Java framework for building REST services that bundles Jetty, Jersey, Jackson, Hibernate Validator and Metrics into one runnable JAR with an application port and an admin port. These Dropwizard tutorials cover the current release, Dropwizard 5, on Java 25, and every article comes with a complete Maven project on GitHub.
We recommend reading them in order. Start with the hello world service, which sets up the project layout and the fat JAR, and after that add health checks, an HTTP client and authentication to the same kind of service.
1. Getting Started
The first article builds a small REST API from scratch and explains the configuration class, the application class, resources, ports and tests.
- Dropwizard Tutorial: Hello World REST API Example (Java 25) covers the project setup with the Dropwizard BOM, config.yml, CRUD resources, validation errors and JUnit 6 tests.
2. Production Features
A service in production needs to report its state, call other services safely and protect its endpoints.
- Dropwizard Health Check: Configuration and Examples explains custom HealthCheck classes, the admin /healthcheck, the health block and Kubernetes probes.
- Dropwizard Client: JerseyClientBuilder and HttpClient Examples configures JerseyClientBuilder and HttpClientBuilder with timeouts, connection pools, retries and TLS.
- Dropwizard Basic Auth Example With @Auth and @RolesAllowed secures endpoints with dropwizard-auth, BCrypt password hashes, @Auth, @RolesAllowed and tests for 401 and 403.
3. Troubleshooting
Most startup failures of a packaged Dropwizard JAR come from the way the fat JAR is built.
- Dropwizard Could Not Resolve Type Id ‘http’ Error: Fix shows why the Shade plugin needs the ServicesResourceTransformer.
4. Related JAX-RS Tutorials
Dropwizard resources are plain JAX-RS classes served by Jersey, so the Jersey tutorials apply to them as well.
- Jersey hello world example
- Jersey ExceptionMapper
- Jersey REST client examples
- All Jersey and JAX-RS tutorials
5. References
Happy Learning !!