web-dev-qa-db-ja.com

Apache 7.0.54およびJava 8へのデプロイ中に、Java.lang.IllegalArgumentExceptionでSpringコンテキストの初期化が失敗しました

環境:Applciationサーバー:Apache 7.0.54 Java: "1.8.0_05" OS:Mac OS X 10.9.3

ライブラリ:Spring 3.2 REST application

展開中に受け取ったエラーは次のとおりです。

localhost.2014.06.09.log

Jun 09, 2014 3:37:47 PM org.Apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Jun 09, 2014 3:37:47 PM org.Apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Jun 09, 2014 3:37:47 PM org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

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:101)
    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.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.Java:383)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:283)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:112)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4973)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5467)
    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:632)
    at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:1083)
    at org.Apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.Java:1880)
    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)
40
user827096

Java 1.8バイトコード形式をサポートするには、Spring 4リリースにアップグレードする必要があります

69
Jigar Joshi

Spring 4に行けない場合、3.2.16にアップグレードするだけで問題は解決します。

Tom Saleeba に感謝

20
Aalkhodiry

私の場合、私のアプリケーションはJava8とjettyで動作し、spring 3.1.4を使用しており、アップグレードできません。

この問題は、Bean定義内でラムダ関数を使用した後に現れました。それを削除することで問題が解決しました。

0
riccardo.tasso

Spring 3.2.16にアップグレードすると、問題は解決しました。春の古いバージョンはJava 1.8.xxxが好きではないようです

0
Parik Chudasma