- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的项目有问题,经过一些测试后我认为它与源代码无关。即使回到以前的工作修订版,我在尝试部署到 Tomcat 时仍然会收到错误消息。
错误是由 java.lang.ClassFormatError
引起的 org.springframework.beans.factory.BeanDefinitionStoreException
消息 Truncated class file.
我已经开始通过从等式中删除 Eclipse 来缩小问题范围,但即使使用 Maven 命令行构建并直接部署到我的 tomcat 实例,我仍然会遇到同样的问题。谷歌搜索错误,有人建议清除 tomcat 工作目录和临时目录,但我没有成功。
我知道这不是很多信息,但假设问题不在于我的代码,对我的系统进行哪些更改可能会导致此问题突然出现?
堆栈跟踪
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [beans.xml]; nested exception is java.lang.ClassFormatError: Truncated class file
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:239)
... 54 more
Caused by: java.lang.ClassFormatError: Truncated class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.loadClass(XBeanQNameHelper.java:102)
at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.getBeanInfo(XBeanQNameHelper.java:72)
at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.getPropertyDescriptor(XBeanNamespaceHandler.java:581)
at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.addAttributeProperties(XBeanNamespaceHandler.java:333)
at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:225)
at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:276)
at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)
at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1419)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
... 59 more
最佳答案
看起来其中一个类文件已损坏,但问题在于找到是哪一个。
调试它的一种方法是使用 eclipse 的 break on exception feature .启动 tomcat 等待 debugger to attach before running ,然后在抛出 java.lang.ClassFormatError 时中断,并查看局部变量和 eclipse 中的堆栈以查看哪个类加载失败。
关于java - Tomcat 在启动时突然抛出 ClassFormatError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346923/
从 Eclipse 运行程序时它工作正常。 在 Eclipse 之外运行它时,我得到了这个: java.lang.ClassFormatError: Duplicate method name&si
我尝试在我的网络应用程序中使用小程序。 小程序类: public class TestApplet extends JApplet { @Override public void in
使用 ASM,我将一个方法中的代码替换为另一个方法。该方法称为“checkIfShouldDisconnect”,使用BytecodeOutline插件,我获得了我想要转换的源代码的ASM代码。但是,
我的项目有问题,经过一些测试后我认为它与源代码无关。即使回到以前的工作修订版,我在尝试部署到 Tomcat 时仍然会收到错误消息。 错误是由 java.lang.ClassFormatError 引起
我需要开发一个示例应用程序并将其部署在 Linux 中并进行测试。 问题是我得到了 Exception in thread "main" java.lang.ClassFormatError: com
最近我遇到了这个错误 Caught: java.lang.ClassFormatError: Illegal field modifier in class **** : 0x3 java.lang.
我正在运行一个已部署并在诺基亚 S60 sdk 上运行的 midlet 应用程序。我想让我的应用程序在每个 java 和 symbian 设备上运行。我尝试在 Java_ME_platform_SDK
我正在尝试使用 EMMA 生成代码覆盖率报告使用一些测试 JMockit作为模拟框架。在大多数情况下,它是有效的,但我的一些测试因 ClassFormatError 而崩溃,如下所示: java.la
在研究 Java,特别是字节码编辑时,我偶然发现了 this tutorial ,它指导您完成使用十六进制编辑器编辑已编译的 Java .class 文件的步骤。出于好奇,我尝试了一下。 我确保我输入
我正在创建一个类似于 java.util.LinkedList 的类,但得到了一个完全出乎意料的 ClassFormatError。我的 IDE 没有显示任何警告。仅供引用,我正在使用 Java 8u
欢迎, 我写了简单的测试类形式示例a JavaMail API – Sending email - by mkyong工作完美,但如果我在没有主方法的情况下创建单独的类,如下所示: import co
我正在尝试使用 EMMA 来衡量一些使用 JMockit 的 JUnit 测试的覆盖率。但是当我在使用 EMMA 进行检测后尝试运行 JMockit 测试时,大约四分之一的测试失败并出现以下错误: c
感谢这里的一些帮助。 刚刚安装了Android Studio 1.5.1(使用1.2之后)。然后我创建了一个新项目来尝试并在事件日志中显示以下内容: 7:15:26 PM ClassFormatErr
当我尝试在已注释的 @Controller 方法中使用 @Secured 或 @PreAuthorize 时,抛出了一个奇怪的错误@RequestMapping。当我尝试启动应用程序时(在 win 7
我正在使用Equinox Transforms将一个类替换为类路径上该类的自定义版本。转换机制似乎工作正常,我从转换器类的 public InputStream getInputStream(Inpu
我正在玩《我的世界》,我玩的客户端有一个错误,导致我的《我的世界》在退出后崩溃,所以我想修复这个问题。我反编译客户端并在 NetBeans 中编辑 .java 文件(我编辑得很少),然后将该文件另存为
这个问题在这里已经有了答案: How to properly install and configure JSF libraries via Maven? (1 个回答) 关闭 7 年前。 在我的
我正在使用以下方法从 jar 条目(仅包含类文件)中读取字节。 jar里面没有jar文件。 private List readFromJarFile(File cp) { List cbyte
控制台错误:- Initial SessionFactory creation failed.java.lang.ClassFormatError: Absent Code attribute in
我正在使用 javassist 来更改方法体。当该方法在应用程序中定义时我可以做到这一点。但是,当我想更改应用程序使用的 jar 文件中定义的方法时,我会收到以下运行时错误: javassist.Ca
我是一名优秀的程序员,十分优秀!