- Notifications
You must be signed in to change notification settings - Fork 945
Closed as not planned
Closed as not planned
Copy link
Labels
Description
Describe the bug
DynamoDBLocal-1.20.0.jar
(com.amazonaws:DynamoDBLocal:1.20.0
) has references to javax.servlet
, making it impossible to use it with Spring Boot 3 (which requires migration to Jakarta EE 10).
Expected Behavior
Instantiating LocalDynamoDBRequestHandler
in presence of Spring Boot 3 should not throw ClassNotFoundException
exception.
Current Behavior
Tryng to instantiate LocalDynamoDBRequestHandler
class throws the following exception:
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream at com.example.demo.DynamoDbLocalConfig.localDynamoDBServerHandler(DynamoDbLocalConfig.java:14) ~[classes/:na] at com.example.demo.DynamoDbLocalConfig$$SpringCGLIB$$0.CGLIB$localDynamoDBServerHandler$0(<generated>) ~[classes/:na] at com.example.demo.DynamoDbLocalConfig$$SpringCGLIB$$2.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:257) ~[spring-core-6.0.2.jar:6.0.2] at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-6.0.2.jar:6.0.2] at com.example.demo.DynamoDbLocalConfig$$SpringCGLIB$$0.localDynamoDBServerHandler(<generated>) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139) ~[spring-beans-6.0.2.jar:6.0.2] ... 20 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletInputStream at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na] ... 31 common frames omitted
Reproduction Steps
- Prepare a minimal project with Spring Boot 3 (e.g. from https://start.spring.io/)
- Add
com.amazonaws:DynamoDBLocal:1.20.0
dependency as described in the instructions - Try to instantiate
LocalDynamoDBRequestHandler
class.
Example code that reproduces the issue: https://github.com/mgr32/dynamodblocal-spring-boot-3
Possible Solution
Update imports from javax.*
to jakarta.*
as described in Spring Boot 3 migration guide.
Additional Information/Context
No response
AWS Java SDK version used
2.16.46
JDK version used
17.0.4
Operating System and version
Linux Ubuntu 22.04.1