我已经包含了所有 6 个 jars(beanutils、lang、logging、collections、ezmorph、json-lib)。它在简单的 struts 应用程序中工作正常。但是在我的 struts 应用程序中,虽然我包含了所有 jar 文件,但它显示了一个NoClassDefFoundError
about ListOrderedMap
.
我不知道如何让我的应用知道那个类。但是我已经包含了其他不同功能所需的罐子。
请帮我解决这个问题。
我已经包含了所有 6 个 jars(beanutils、lang、logging、collections、ezmorph、json-lib)。它在简单的 struts 应用程序中工作正常。但是在我的 struts 应用程序中,虽然我包含了所有 jar 文件,但它显示了一个NoClassDefFoundError
about ListOrderedMap
.
我不知道如何让我的应用知道那个类。但是我已经包含了其他不同功能所需的罐子。
请帮我解决这个问题。
类ListOrderedMap
是Apache Commons Collections的一部分(从 3.0 版开始)。
为了能够使用它,您必须在类路径中拥有包含它的 JAR 文件。JAR 文件很可能被命名commons-collections-3.2.1.jar
(或类似名称)。
如果您正在创建一个打包在 WAR 文件中的 Web 应用程序,那么您应该将库放在WEB-INF/lib
WAR 文件内的文件夹中。
是的,即使现在有更新的 v4.x 用于 commons-collections,4.x 也不起作用!
所以,从 v3.x 获取旧的最高版本,即:v3.2.1
如果您像我一样使用 Maven,这是我完整的工作依赖项列表:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<!-- <classifier>jdk15</classifier> -->
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
<version>1.2.5</version>
</dependency>