java.lang.ClassFormatError:类文件中的魔法值0不兼容

java.lang.ClassFormatError:类文件中的魔法值0不兼容,java,tomcat,ubuntu,java-8,ubuntu-10.04,Java,Tomcat,Ubuntu,Java 8,Ubuntu 10.04,我在Tomcat8.0.24中部署了一个war文件,JDK8和ubuntu 14.04运行良好 除了在一台使用ubuntu 10.04的旧机器上,其他配置都是相同的。这里的问题是应用程序无法启动,出现了奇怪的异常 01-Sep-2015 14:30:47.089 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initia

我在Tomcat8.0.24中部署了一个war文件,JDK8和ubuntu 14.04运行良好

除了在一台使用ubuntu 10.04的旧机器上,其他配置都是相同的。这里的问题是应用程序无法启动,出现了奇怪的异常

01-Sep-2015 14:30:47.089 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class
       org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'XXXX' defined in class path resource [spring-context.xml]: Invocation of 
init method failed; nested exception is java.lang.ClassFormatError: Incompatible magic value 0 in class file YYYY
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4729)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassFormatError: Incompatible magic value 0 in class file XXXX
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2476)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:857)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1282)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1164)
    ... 25 more

我得到的类文件似乎已损坏,但我可以使用IntelijIdea进行反编译,我可以尝试使用java-cp XXX运行它,但它相应地失败,没有找到主方法。我打开了这个类,它在一开始就有了正确的CAFE BABE功能。唯一的区别是ubuntu版本,但我不知道是什么导致了这个问题。有什么想法吗?

JDK版本在两台机器上都是一样的?这是来自第三方jar的类文件吗?如果是这样,即使jar中有一个损坏的类也可能导致抛出此异常。该类来自我的代码,但有很多来自第三方的依赖项,但最好检查这些依赖项。我会尝试一下,我猜当你传输war或者在Ubuntu 10.04机器上爆发war时,类文件被破坏了。最好的办法是清理所有东西,复制war,然后再试一次。它没有损坏:我从本地的远程服务器复制了那个类,然后用Intellij打开它,它工作得很好。我尝试了几次清理一切,重新编译了war,甚至手动解压war并将扩展的文件夹复制到tomcat webapps目录中,但仍然没有成功。我仍然对此感到震惊。我们最终使用了jdk 7,它使用了完全相同的war文件。也许jdk 8有问题???