【问题标题】:Servlet /webapp threw load() exceptionServlet /webapp 抛出 load() 异常
【发布时间】:2014-12-03 03:46:22
【问题描述】:

当我在 linux 中启动 tomcat 服务器时,war 文件应该会自动部署 webapp。当我看到 localhost.log 文件时,发现如下错误

    SEVERE: Servlet /webapp threw load() exception
java.lang.IllegalArgumentException
    at org.springframework.asm.ClassReader.<init>(Unknown Source)
    at org.springframework.asm.ClassReader.<init>(Unknown Source)
    at org.springframework.asm.ClassReader.<init>(Unknown Source)
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:52)
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
    at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:76)
    at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:298)
    at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:300)
    at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:300)
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:230)
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:153)
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:130)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:285)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:652)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:600)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:666)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:519)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:460)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1879)
    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:744)

不知道发生了什么以及它是如何发生的,因为当我在本地盒子中执行相同操作时,我看不到任何错误!我的假设是,使用 java 7 在本地构建并在 linux 中使用 Java 8。

这是发生了什么还是我错过了其他东西?

【问题讨论】:

    标签: java linux spring-mvc tomcat


    【解决方案1】:

    什么是 Spring 版本?我认为 Spring 3 和 Java 8 存在一些问题。

    如果您使用的是 Spring 3,请将其更改为 Spring 4 使用 Java 8 构建和部署

    将 Java 降级到 7 并使用 spring 3!

    【讨论】:

    • 完美,成功了。正在使用 spring 3。修改了对 spring 4.0.6 的依赖关系!
    • 我正在使用 spring 4 和 java 8 ...仍然遇到这个问题
    【解决方案2】:

    这个问题发生在我身上,因为我没有在项目属性的部署选项中提供路径:

    右键项目--->选择“属性”-->部署程序集-->“添加”选项--> 选择“java构建路径条目”->选择路径

    【讨论】:

    • 是的,这对我来说是一个完美的答案 tnx!
    • 我在 java 构建路径中看不到任何内容,它显示带有后退按钮的空框(禁用完成)
    • 属性中没有部署程序集选项
    【解决方案3】:

    这是完美的解决方案,两天以来我一直在为此苦苦挣扎。

    右键项目--->选择“属性”-->部署程序集-->“添加”选项-->选择“java构建路径条目”-->选择路径(maven依赖)-->完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 2014-01-08
      • 2010-09-10
      • 2015-03-28
      • 2012-04-23
      相关资源
      最近更新 更多