eclipse spring mvc项目中的servlet不可用错误

时间:2011-02-17 19:06:36

标签: java eclipse spring

我正在使用eclipse运行该项目。在一个项目中我收到以下错误

  

18/02/2011 12:23:41 AM   org.apache.catalina.core.AprLifecycleListener   init INFO:基于APR的Apache Tomcat   允许最佳的本机库   在生产环境中的表现   没找到了   的java.library.path:   C:\ java的\ BIN; C:\ WINDOWS \太阳\的Java \ BIN; C:\ WINDOWS \ SYSTEM32; C:\ WINDOWS; C:\ java的\ BIN; C:\ PROGRAM   文件(x86)\ MySQL \ MySQL服务器   5.1 \ bin; C:\ Program Files(x86)\ IDM Computer   解决方案\ UltraEdit的\; C:\ java的\ BIN   18/02/2011 12:23:42 AM   org.apache.tomcat.util.digester.SetPropertiesRule   开始警告:   [SetPropertiesRule] {服务器/服务/发动机/主机/上下文}   将属性'source'设置为   'org.eclipse.jst.jee.server:test'做了   找不到匹配的属性。   18/02/2011 12:23:42 AM   org.apache.coyote.AbstractProtocolHandler   init INFO:初始化   ProtocolHandler [“http-bio-8085”]   18/02/2011 12:23:42 AM   org.apache.coyote.AbstractProtocolHandler   init INFO:初始化   ProtocolHandler [“ajp-bio-8009”]   18/02/2011 12:23:42 AM   org.apache.catalina.startup.Catalina   加载INFO:处理初始化   511 ms 18/02/2011 12:23:42 AM   org.apache.catalina.core.StandardService   startInternal INFO:启动服务   Catalina 18/02/2011 12:23:42 AM   org.apache.catalina.core.StandardEngine   startInternal INFO:启动Servlet   引擎:Apache Tomcat / 7.0.8 18/02/2011   上午12:23:42   org.apache.catalina.core.ApplicationContext   log INFO:将servlet标记为   不可用18/02/2011 12:23:42 AM   org.apache.catalina.core.StandardContext   loadOnStartup SEVERE:Servlet / test   扔了load()异常   抛出java.lang.ClassNotFoundException:   org.springframework.web.servlet.DispatcherServlet     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)     在   org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)     在   org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)     在   org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)     在   org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)     在   org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:996)     在   org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4834)     在   org.apache.catalina.core.StandardContext $ 3.call(StandardContext.java:5155)     在   org.apache.catalina.core.StandardContext $ 3.call(StandardContext.java:5150)     在   java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:303)     在   java.util.concurrent.FutureTask.run(FutureTask.java:138)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908)     在   java.lang.Thread.run(Thread.java:662)   18/02/2011 12:23:42 AM   org.apache.coyote.AbstractProtocolHandler   启动INFO:启动ProtocolHandler   [“http-bio-8085”] 18/02/2011 12:23:42   上午   org.apache.coyote.AbstractProtocolHandler   启动INFO:启动ProtocolHandler   [“ajp-bio-8009”] 18/02/2011 12:23:42   上午   org.apache.catalina.startup.Catalina   启动INFO:服务器启动时间为332毫秒   18/02/2011 12:23:52 AM   org.apache.catalina.core.StandardWrapperValve   调用INFO:当前是Servlet ds   不可用

我的ds.servlet是

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.orf/schema/beans/spring-beans-2.0.xsd">

    <!-- Configuring DataSource -->
    <bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://localhost:3306/springdb</value>
        </property>
        <property name="username">
            <value>root</value>
        </property>
        <property name="password">
            <value>root</value>
        </property>
    </bean>


    <!-- Configuring jdbcTemplate -->
    <bean id="jdbctemp" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg>
            <ref local="datasource" />
        </constructor-arg>
    </bean>

    <bean id="loginModel" class="com.santosh.spring.LoginModel">
        <constructor-arg>
            <ref local="jdbctemp" />
        </constructor-arg>
    </bean>

    <bean id="logincnt" class="com.santosh.spring.LoginController">
        <property name="loginModel" >
            <ref local="loginModel"/>
        </property>

        <!-- Configure Command ClassName  -->

        <property name="commandClass" >
        <value type="java.lang.Class"> com.santosh.spring.UserDetails </value>
        </property>

        <!-- Configure the command name , the name to use when binding the instantiated command class to the request -->

        <property name="commandName">
            <value> UserDetails </value>
        </property>

    </bean>


    <!-- Configure URL Mapping   -->

    <bean id="myurlmapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
        <property name="mappings">
            <props>
                <prop key="/login.spring">logincnt</prop>
            </props>
        </property>
        <property name="urlMap">
<map>
<entry key="/hello.springs">
<ref bean="helloController"/>
</entry>
</map>
</property>
    </bean>
    <bean id="helloController" class="net.roseindia.web.HelloWorldController"> </bean>

</beans>

2 个答案:

答案 0 :(得分:1)

堆栈跟踪抱怨它无法找到“org.springframework.web.servlet.DispatcherServlet”。 DispatcherServlet类可以在spring-webmvc.jar中找到(jarfinder.com是一个很好的工具,可以确定哪些jar包含哪些类),所以请仔细检查你是否拥有所有合适的spring jar,比如spring-core-x。 jar,spring-webmvc-x.jar等在Eclipse的类路径上(或者在WEB-INF / lib下,取决于你如何运行webapp)。如果你需要弹簧罐,Maven repository是个好地方。

答案 1 :(得分:1)

戴夫是对的。但是,Tomcat存在一些热部署问题,因为它有时无法加载实际存在于类路径中的类。因此,如果您发现实际上已将jar放在正确的位置,那么只需清理tomcat(右键单击服务器并选择clean),然后重新开始。