簡體   English   中英

找不到Spring Application上下文

[英]Spring Application context not found

我在閱讀應用程序的應用程序上下文時遇到問題。 我正在和Vaadin做實驗。 我的配置類以我之前在其他項目中使用過的方式進行注釋,並且始終可以使用以下方式進行注釋:

@ImportResource("classpath:applicationContext.xml")

這么奇怪的是,無論我做什么,甚至用它來明確地找到文件,例如:

@ImportResource("/tmp/classpath:applicationContext.xml")

它仍然無法正常工作! 我現在正在使用Spring 3(由於歷史原因......)

2016/05/17 13:39 ContextLoader.initWebApplicationContext:319 - org.springframework.asm.ClassReader。(未知來源)org.springframework.asm.ClassReader。(未知來源)org上的上下文初始化失敗java.lang.IllegalArgumentException。 .springframework.asm.ClassReader。(未知來源)org.springframework.core.type.classreading.SimpleMetadataReader。(SimpleMetadataReader.java:52)org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java: 80)org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:76)at org.springframework.context org.springframework.context.annotation.ConfigurationClassPostProcessor.processCon中的.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:70) org.springframework上的org.springframework.context.ArinitionRegistry(ConfigurationClassPostProcessor,我發布在org.spring框架中的org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630)的org.springframework.context.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223)中的figBeanDefinitions(ConfigurationClassPostProcessor.java:253)位於org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java)的org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)中的.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) :294)在org.eclipse.jetty的org.eclipse.jetty.wec.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:782)。 org.eclipse.je上的servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424) 位於org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext。)的org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)中的tty.server.handler.ContextHandler.startContext(ContextHandler.java:774)。 java:1242)atg.eclipse.jetty.server.hand.ContextHandler.doStart(ContextHandler.java:717)atg.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)atg.mortbay.jetty .plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:298)位於org.eclipse.jetty.start(AbstractLifeCycle.java:64)org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection)的org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) .java:229)org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org。 org.eclipse.jetty.util.component.AbstractLifeCycl中的eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) e.start(AbstractLifeCycle.java:64)位於org.eclipse.jetty.server.doStart(Server.java:282)的org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65)org.mortbay.jet.plugin.AbstractJettyMojo的org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) .startJetty(AbstractJettyMojo.java:520)org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:365)org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:523)at org。位於org.apache.maven.maven.life.internal.MojoExecutor的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)中的apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)。執行(MojoExecutor.java:153)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Li fecycleModuleBuilder.java:116)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java: 51)在org.apache.maache.maven.maven.DefaultMaven.doExecute的org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) (DefaultMaven.java:193)org.apache.maven.maven.DefaultMaven.execute(DefaultMaven.java:106)位於org.apache.maven的org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)。 cli.MavenCli.doMain(MavenCli.java:288)atg.apache.maven.cli.MavenCli.main(MavenCli.java:199)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl。在java.lang.reflect.Method.invoke(Method.jav)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)調用(NativeMethodAccessorImpl.java:62) a:498)org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)at org.codehaus .plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

經過大量的研究,我們終於找到了正在發生的事情。 這個非常棘手,但它有道理:

Java 1.8 ASM ClassReader無法解析類文件 - 可能是由於尚未支持的新Java類文件版本

本質上,新的ASM不像以前那樣讀取類,而Spring 3正在使用舊的ASM兼容性讀取它們。 這導致我只有在更改為Spring 4時才能在Java 8中運行應用程序.Spring確保Spring 4與Java 6之后的任何舊Java版本之間的兼容性:

https://spring.io/blog/2015/04/03/how-spring-achieves-compatibility-with-java-6-7-and-8

oposite不正確,這意味着我無法使用Java 8運行Spring 3,因此我們現在有一個很好的遷移工作:)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM