java - org.springframework.webflow.util.RandomGuid 上的错误 java.lang.NoClassDefFoundError

标签 java linux tomcat classpath centos5

对不起,我的问题很愚蠢,但作为一个java文盲,我无法回答。我在 CentOS5 上运行 tomcat (5)(用于 CAS 服务器),当我尝试打开此 URL http://192.168.1.17:8080/cas-server-webapp-3.3.1/login 时我收到此错误:

第一个错误: java.lang.NoClassDefFoundError: 无法初始化类 org.springframework.webflow.util.RandomGuid

和根错误: org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是 java.lang.NoClassDefFoundError: Could not initialize class org.springframework.webflow.util.RandomGuid

$CLASSPATH是空的,貌似是个问题,不知道往里面放什么

编辑:Jared 是对的,我的主机文件将 127.0.0.1 定义为本地主机,现在它工作得很好!

最佳答案

在这种情况下,重要的是在我们的头脑中保留两个或三个不同的异常:

  1. java.lang.ClassNotFoundException 此异常表示在类路径中找不到该类。这表明我们正在尝试加载类定义,而类路径中不存在该类。

  2. java.lang.NoClassDefFoundError 此异常表明 JVM 在其内部类定义数据结构中查找类的定义但未找到它.这不同于说它不能从类路径加载。通常这表明我们之前尝试从类路径加载一个类,但由于某种原因失败了 - 现在我们再次尝试,但我们甚至不打算尝试加载它,因为我们之前加载它失败了。较早的失败可能是 ClassNotFoundException 或 ExceptionInInitializerError(表示静态初始化 block 中的失败)或任何数量的其他问题。重点是,NoClassDefFoundError 不一定是类路径问题。

话虽这么说,另一个答案海报表明 RandomGUID 需要调用 InetAddress.getLocalHost()。在许多操作系统上,这将触发主机查找,该主机查找将使用主机文件(/etc/hosts 在 *NIX 系统上,%WINDOWS%/system32/drivers/etc/HOSTS 在 Windows 系统上。)

当该文件错误地定义本地主机地址时,我经常看到类似的错误。 127.0.0.1 应该指向“localhost”(可能还有 localhost.localdomain)。它应该指向机器(尽管出于某种原因,许多较旧的 RedHat Linux 安装程序喜欢错误地设置它。)

关于java - org.springframework.webflow.util.RandomGuid 上的错误 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375332/

相关文章:

java - 字符串的简单时间解析

java - 连接 POJO 的所有非空属性

linux - linux权限的奇怪情况

macos - Mac 10.6 server/tomcat/jenkins/vncserver 无法在目录下运行

java - 如何使用 Apache Maven 将构建部署到服务器?

java - 如何确定hashcode值?

java - 为什么ArrayList能够去掉这个呢?

java - 由于我是初学者,Windows 10 上的批量主机到 Ip 程序 - 脚本方式

linux - 将原始 PCM 流转换为 wavs (cli)

tomcat - Spring + thymeleaf 渲染HTML表单标签失败