在学习maven,试用于一个spring mvc项目.
在pom.xml中添加了如下内容:
org.springframework
spring-webmvc
3.0.6.RELEASE
compile
并在%user%\.m2\repository\org\springframework\****
中下载了所依赖的多个jar包,包括 spring-webmvc,spring-web,spring-core,spring-beans,aop等等.
当启动项目时,报错:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3099)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1309)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:722)
提示无法load DispatcherServlet
然后将 spring-webmvc.jar添加到 WebContxt/WEB-INF/lib 目录
报错:
java.lang.ClassNotFoundException: org.springframework.beans.BeansException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
at java.lang.Class.getConstructor0(Class.java:2714)
at java.lang.Class.newInstance0(Class.java:343)
at java.lang.Class.newInstance(Class.java:325)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1115)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
证明找到了spring-webmvc.jar ,但其他依赖包未找到,
问题是怎样将maven的jar包添加到项目依赖里?
ps:在项目的build path里已有 Maven Dependencies ,里面也有 spring的包,
问题补充:
Wind_ZhongGang 写道
${spring.version}
谢谢回答,不过所问非所答喽,同时请问,这个配置是如何应用的呢? 就是这个version的配置.
问题补充:
Wind_ZhongGang 写道
那你的问题是?我没有太懂。
spring所需要的包,maven已经帮我下载到本地库了,但是,项目启动时引用不到,
你仔细看下我发的两个异常,第二个异常是在我手动将spring-webmvc.jar这个包添加到WebContent/WEB-INF/lib下 后报出的.
证明只有在手动添加后才加载到了,ps:在项目的build path里已有 Maven Dependencies ,里面也有 spring的包,
问题补充:
Wind_ZhongGang 写道
引用
java.lang.ClassNotFoundException
报这个错的最大可能是必要的包没有,而且你说的项目启动时没有加载依赖包到项目中,那你使用的是什么IDE,这个事情IDE完全会帮我们去做,而不需要额外的配置,看看你的IDE配置吧
问题解决了..
方案:
project 右键, deployment assembly , add ,java build path entries , Maven Dependencies .
这样才能在发布时,将maven的jar包一起放到服务器中.