【发布时间】:2014-02-05 21:43:20
【问题描述】:
我正在尝试在 Eclipse 中运行最新的 Spring 示例项目,但我总是遇到 ClassNotFoundException。 (例如 spring-mvc-showcase 项目)
环境:
- Ubuntu 12.04,64 位(与 13.10 相同的问题)
- openjdk-7-jdk,openjdk-7-jre 已安装
- Eclipse kepler Java EE 版本,已安装 STS。
步骤:
- 我新建了一个项目:Spring/Import Spring Getting Started Content
- 加载完所有依赖后,右键项目名/Run As/Run On Server: J2EE Preview at localhost
码头输出:
2014-01-16 20:13:01.241:INFO:oejs.Server:jetty-8.1.10.v20130312 2014-01-16 20:13:02.905:WARN:oejw.StandardDescriptorProcessor:无法实例化监听器 org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377) 在 org.eclipse.jetty.server.handler.ContextHandler.loadClass(ContextHandler.java:1517) 在 org.eclipse.jetty.webapp.StandardDescriptorProcessor.visitListener(StandardDescriptorProcessor.java:1839) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.eclipse.jetty.webapp.IterativeDescriptorProcessor.visit(IterativeDescriptorProcessor.java:80) 在 org.eclipse.jetty.webapp.IterativeDescriptorProcessor.process(IterativeDescriptorProcessor.java:67) 在 org.eclipse.jetty.webapp.MetaData.resolve(MetaData.java:332) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1219) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:02.931:WARN:oejs.Holder: java.lang.ClassNotFoundException: org.springframework.web.filter.HiddenHttpMethodFilter 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377) 在 org.eclipse.jetty.util.Loader.loadClass(Loader.java:100) 在 org.eclipse.jetty.util.Loader.loadClass(Loader.java:79) 在 org.eclipse.jetty.servlet.Holder.doStart(Holder.java:97) 在 org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:91) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719) 在 org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:02.932:WARN:oejuc.AbstractLifeCycle:FAILED httpMethodFilter:javax.servlet.UnavailableException:org.springframework.web.filter.HiddenHttpMethodFilter javax.servlet.UnavailableException:org.springframework.web.filter.HiddenHttpMethodFilter 在 org.eclipse.jetty.servlet.Holder.doStart(Holder.java:104) 在 org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:91) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719) 在 org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:02.933:WARN:oejw.WebAppContext:上下文 oejwWebAppContext{/petclinic 启动失败,[file:/home/szilard/workspace/.metadata/.plugins/org.eclipse.wst.server .core/tmp0/spring-petclinic/, jar:file:/home/szilard/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/spring-petclinic/WEB-INF/lib/jquery -2.0.3-1.jar!/META-INF/resources/, jar:file:/home/szilard/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/spring-petclinic/ WEB-INF/lib/jquery-ui-1.10.3.jar!/META-INF/resources/, jar:file:/home/szilard/workspace/.metadata/.plugins/org.eclipse.wst.server.core /tmp0/spring-petclinic/WEB-INF/lib/bootstrap-2.3.0.jar!/META-INF/resources/]},/home/szilard/workspace/.metadata/.plugins/org.eclipse.wst。 server.core/tmp0/spring-petclinic javax.servlet.UnavailableException:org.springframework.web.filter.HiddenHttpMethodFilter 在 org.eclipse.jetty.servlet.Holder.doStart(Holder.java:104) 在 org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:91) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719) 在 org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:03.416:WARN:oejw.StandardDescriptorProcessor:无法实例化监听器 org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377) 在 org.eclipse.jetty.server.handler.ContextHandler.loadClass(ContextHandler.java:1517) 在 org.eclipse.jetty.webapp.StandardDescriptorProcessor.visitListener(StandardDescriptorProcessor.java:1839) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.eclipse.jetty.webapp.IterativeDescriptorProcessor.visit(IterativeDescriptorProcessor.java:80) 在 org.eclipse.jetty.webapp.IterativeDescriptorProcessor.process(IterativeDescriptorProcessor.java:67) 在 org.eclipse.jetty.webapp.MetaData.resolve(MetaData.java:332) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1219) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:03.431:WARN:oejs.Holder: java.lang.ClassNotFoundException:org.springframework.web.filter.DelegatingFilterProxy 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377) 在 org.eclipse.jetty.util.Loader.loadClass(Loader.java:100) 在 org.eclipse.jetty.util.Loader.loadClass(Loader.java:79) 在 org.eclipse.jetty.servlet.Holder.doStart(Holder.java:97) 在 org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:91) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719) 在 org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:03.432:WARN:oejuc.AbstractLifeCycle:FAILED csrfFilter: javax.servlet.UnavailableException: org.springframework.web.filter.DelegatingFilterProxy javax.servlet.UnavailableException:org.springframework.web.filter.DelegatingFilterProxy 在 org.eclipse.jetty.servlet.Holder.doStart(Holder.java:104) 在 org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:91) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719) 在 org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:03.432:WARN:oejw.WebAppContext:上下文 oejwWebAppContext{/spring-mvc-showcase,file:/home/szilard/workspace/.metadata/.plugins/org.eclipse 启动失败。 wst.server.core/tmp0/spring-mvc-showcase/},/home/szilard/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/spring-mvc-showcase javax.servlet.UnavailableException:org.springframework.web.filter.DelegatingFilterProxy 在 org.eclipse.jetty.servlet.Holder.doStart(Holder.java:104) 在 org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:91) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719) 在 org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) 在 org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221) 在 org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) 在 org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 在 org.eclipse.jetty.server.Server.doStart(Server.java:280) 在 org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72) 在 org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29) 2014-01-16 20:13:03.485:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
【问题讨论】:
标签: java eclipse spring maven spring-mvc