-
Notifications
You must be signed in to change notification settings - Fork 926
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