tomcat/struts 启动为 java.io.File 抛出 ClassNotFoundException

标签 tomcat struts2 classloader

我遇到了一个奇怪的问题。当我用我的 webapp (struts 2) 启动 tomcat 时,我在 catalina.out 中看到了这个。它在我的应用程序的类目录中寻找 java.io.File,当然找不到。它还在寻找许多其他核心 java 类,如 Comparator。

有谁知道它为什么会出现在那里?在堆栈跟踪中,我看到 opensymphony,这意味着它是一个 Struts 问题,一种猜测是它是一个涉及类加载器的配置问题,但我仍然感到困惑。

我在下面的堆栈跟踪中用“”替换了路径。

    12:50:12.547 [main] DEBUG c.o.x.u.c.FileResourceStore - Unable to read file [java/io/File.class]
java.io.FileNotFoundException: /home/<company name>/WEB-INF/classes/java/io/File.class (No such file or directory)
    at java.io.FileInputStream.open(Native Method) ~[na:1.6.0_20]
    at java.io.FileInputStream.<init>(Unknown Source) ~[na:1.6.0_20]
    at com.opensymphony.xwork2.util.classloader.FileResourceStore.read(FileResourceStore.java:33) ~[xwork-core-2.1.6.jar:na]
    at com.opensymphony.xwork2.util.classloader.ResourceStoreClassLoader.fastFindClass(ResourceStoreClassLoader.java:31) [xwork-core-2.1.6.jar:na]
    at com.opensymphony.xwork2.util.classloader.ResourceStoreClassLoader.loadClass(ResourceStoreClassLoader.java:45) [xwork-core-2.1.6.jar:na]

最佳答案

我们需要更多信息。您可以发布您的 struts.xml 或(如果有的话)您的 struts.properties 吗? 此外请注意,您运行的是旧版本的 S2,如果我没记错的话,它更改了您发布的某些类(class)中的某些内容。

关于tomcat/struts 启动为 java.io.File 抛出 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872613/

相关文章:

java - 如何在 Tomcat 中为多个错误代码使用相同的错误页面?

java - 不同 tomcat worker 的 Log4j

java - 如何获取Interceptor中action url中定义的参数

jsp - 如何在从 JSP 向 Action 发送空字符串的 boolean 值中保留 NULL 状态

java - 加载程序约束违规 : loader (instance of x) previously initiated loading for a different type with name y

apache - 无法在 Tomcat 8.0.26 中重新部署 war 文件

java - 在 docker 中与 tomcat 开战

jsp - 将 JSP 页面放在 Apache Struts 应用程序的 WEB-INF 文件夹中是否是个好主意?

java - JVM 标志 CMSClassUnloadingEnabled 实际上是做什么的?

java - 如何在 Java 中卸载已经加载的类?