2014-10-08 312 views
4

當我在linux啓動tomcat服務器時,war文件應該自動部署webapp。當我看到localhost.log文件,發現下面的錯誤Servlet/webapp拋出load()異常

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。

這是最新情況還是我缺少其他東西?

回答

9

什麼是Spring版本?我認爲有一些問題與Spring 3和Java 8

如果您在使用Spring 3將其更改爲彈簧4構建和使用Java 8部署

降級的Java 7和使用的彈簧3!

+1

完美的,它的工作。正在使用spring 3.修改了依賴到spring 4.0.6! – user1609085 2014-10-08 14:47:52

19

這個問題發生在我,因爲我沒有在項目的性質提供Deployement選擇路徑:

右鍵單擊項目--->選擇「屬性」 - > Deployement組裝 - >「添加「選項 - > 選擇」java構建路徑條目「 - >選擇路徑

+2

是的,這對我來說是完美的答案! – 2016-01-27 11:59:53

+2

PERFECT ...... :) – Jaikrat 2016-05-27 07:28:44

+1

我無法在java構建路徑中看到任何東西,它向我顯示帶有後退按鈕的空框(禁用完成) – 2017-02-19 14:38:22