.net转java 请教spring的一个基础问题

J2EE 码拜 6年前 (2015-04-15) 428次浏览 0个评论
 

一直在做.net  开发,觉得基础还可以,最近想学习java,语法和一些javaweb的基础都看了一下,觉得门槛不高。但一动起手来发现还真是有点问题。最近打算学习spring,一开始就卡住了,tomcat启动失败。在网上查了许久~都是不行。请大家帮忙看看吧。(web.xml用原始的就可以启动tomcat)
我是照着网上的教程一步一步来的。下载了spring的jar包,放到了/WEB-INF/lib下面,如图:
.net转java 请教spring的一个基础问题
然后配置web.xml

<?xml version="1.0" encoding="UTF-8"?>

 <web-app version="2.5"   
     xmlns="http://java.sun.com/xml/ns/javaee"   
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">    
      <context-param>    
        <param-name>contextConfigLocation</param-name>    
        <param-value>/WEB-INF/spring-dispather.xml</param-value>    
    </context-param>          
       <servlet>    
         <servlet-name>springmvc</servlet-name>    
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    
         <load-on-startup>1</load-on-startup>    
     </servlet>    
     <servlet-mapping>    
         <servlet-name>springmvc</servlet-name>    
         <url-pattern>*.htm</url-pattern>    
     </servlet-mapping>    

     <!-- 配置上下文载入器 -->   
     <!-- 上下文载入器载入除DispatcherServlet载入的配置文件之外的其它上下文配置文件 -->   

     <!-- 最常用的上下文载入器是一个Servlet监听器,其名称为ContextLoaderListener -->   

     <listener>    
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    

     </listener>    
         
    <welcome-file-list>    
         <welcome-file>index.jsp</welcome-file>    
     </welcome-file-list>    
 </web-app> 

然后建立了配置文件spring-dispather.xml,和web.xml放在同一个目录下。
内容如下

<?xml version="1.0" encoding="UTF-8"?>  

 <beans xmlns="http://www.springframework.org/schema/beans" 

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

  xmlns:p="http://www.springframework.org/schema/p" 

  xmlns:context="http://www.springframework.org/schema/context" 

  xsi:schemaLocation="http://www.springframework.org/schema/beans  

   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

   http://www.springframework.org/schema/context  

  http://www.springframework.org/schema/context/spring-context-3.0.xsd">  

      
  <context:component-scan base-package="net.spring.controller" />  

  <bean id="viewResolver"  class="org.springframework.web.servlet.view.UrlBasedViewResolver">  

   <property name="viewClass"   value="org.springframework.web.servlet.view.JstlView" />  

  <property name="prefix" value="/WEB-INF/jsp/" />  

   <property name="suffix" value=".jsp" />  
  </bean>  

 </beans> 

但是在eclipse中启动tomcat中就是失败。
如图
.net转java 请教spring的一个基础问题
错误信息如下:

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringTest2]]
	at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringTest2]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	... 7 more
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Unknown Source)
	at java.lang.Class.getDeclaredFields(Unknown Source)
	at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
	at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
	at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:403)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:879)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
	... 21 more
八月 21, 2014 9:54:52 下午 org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more

八月 21, 2014 9:54:52 下午 org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more


.net转java 请教spring的一个基础问题
35分
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
少一个commons.logging包。

还有2个jar包重复~把tomcat-xx的删掉。

其实你没必要建一个web项目,你这是整合SSH需要的东西~spring的话只需要6个包~
你可以建个java项目,建几个简单的接口和实现类,尝试实现一下依赖注入,这个才是spring的核心的东西。

.net转java 请教spring的一个基础问题
5分
搞个myeclipse吧,简单,省事,添加框架方便,最好把常用的jar包放到tomcat的lib文件夹里,有时光放在项目的lib里不太好使
.net转java 请教spring的一个基础问题
5分
直接下一个myeclipse, 里面自带tomcat。
.net转java 请教spring的一个基础问题
5分
我是用Maven管理包,不用自己去下载这些包,也不用记有哪些包。
看错误信息是没有日志包

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明.net转java 请教spring的一个基础问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!