META-INF/context.xml 中引用的 class 在开始 Tomcat 时未找到

A class referenced in META-INF/context.xml not found when starting Tomcat

我正在尝试实施自定义会话管理器(基于 AWS DynamoDBSessionManager)。 我将 context.xml 文件放在 web/META-INF 文件夹中。内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <Manager className="com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager" createIfNotExist="true" />
</Context>

当我启动 Tomcat(来自 Intellij Idea)时,我收到错误: /Tomcat_9_0_0_M1_LoginService/conf/Catalina/localhost/ROOT.xml;行号:4;列数:120; (4, 120) 错误:com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager

... 原因:java.lang.ClassNotFoundException:com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager

我知道这与 context.xml 中引用的 类 需要在 Tomcat 类路径中这一事实有某种关系。但我不知道我该怎么做才能让他们到达那里。

谢谢!

您必须将 aws-dynamodb-session-tomcat-2.0.3.jar 放入 Web 应用程序的 WEB-INF/lib 文件夹中(或 Tomcat 实例的 lib 文件夹中)。

如果您使用 Maven 构建您的网络应用程序,请添加

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-dynamodb-session-tomcat</artifactId>
    <version>2.0.3</version>
</dependency>

依赖于您的 pom.xml 文件。