java Servlet 调度程序当前不可用

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4508058/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 06:40:08  来源:igfitidea点击:

Servlet dispatcher is currently unavailable

javaspring

提问by theJava

<?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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/spring"/>
        <property name="username" value="monty"/>
        <property name="password" value="indian"/>
    </bean>

    <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="annotatedClasses">
            <list>
                <value>uk.co.vinoth.spring.domain.User</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
            </props>
        </property>
    </bean>

    <bean id="myUserDAO" class="uk.co.vinoth.spring.dao.UserDAOImpl">
        <property name="sessionFactory" ref="mySessionFactory"/>
    </bean>

    <bean name="/user/*.htm" class="uk.co.vinoth.spring.web.UserController" >
        <property name="userDAO" ref="myUserDAO" />
    </bean>

</beans>

The above is my bean configuration, why do i get error when i run my application. My logs folder is empty...

以上是我的 bean 配置,为什么我在运行我的应用程序时会出错。我的日志文件夹是空的...

org.apache.catalina.loader.StandardClassLoader@122c9df
 org.springframework.web.servlet.DispatcherServlet
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1436)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1282)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    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:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Dec 22, 2010 3:44:48 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /interMedix threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1436)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1282)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    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:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Dec 22, 2010 3:44:48 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8181
Dec 22, 2010 3:44:48 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Dec 22, 2010 3:44:48 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/27  config=null
Dec 22, 2010 3:44:48 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Dec 22, 2010 3:44:49 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 558 ms
Dec 22, 2010 3:44:50 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet dispatcher is currently unavailable
Dec 22, 2010 3:50:18 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet dispatcher is currently unavailable

But i have added spring-web-mvc to my class path which does contain this class file.

但是我已将 spring-web-mvc 添加到包含此类文件的类路径中。

回答by duffymo

But i have added spring-web-mvc to my class path which does contain this class file.

但是我已将 spring-web-mvc 添加到包含此类文件的类路径中。

How did you add something to your CLASSPATH?

你是如何在你的 CLASSPATH 中添加一些东西的?

If you're creating a web app, the only appropriate thing is to put .class files under WEB-INF/classes and .jar files under WEB-INF/lib. If you did anything else, I'd say that it's wrong. Modifications of the startup script should not be done; local environment variables will be ignored and unlikely to be set on the server you deploy to.

如果您正在创建 Web 应用程序,唯一合适的方法是将 .class 文件放在 WEB-INF/classes 下,将 .jar 文件放在 WEB-INF/lib 下。如果你做了任何其他事情,我会说这是错误的。不应修改启动脚本;本地环境变量将被忽略,并且不太可能在您部署到的服务器上设置。

UPDATE:

更新:

If you tell me that you've done everything right according to your IDE, I'd recommend one last check: Look at the zipped or exploded WAR file that you actually deploy to Tomcat and make sure that you can see the JAR with the .class file that the error mentions. If it's not part of the WAR, you have to figure out what went wrong with your packaging. If you think the JAR is there, open it and find the .class and check the path.

如果您告诉我您已根据 IDE 正确完成所有操作,我建议您进行最后一次检查:查看您实际部署到 Tomcat 的压缩或分解的 WAR 文件,并确保您可以看到带有 .错误提到的类文件。如果它不是 WAR 的一部分,您必须弄清楚您的包装出了什么问题。如果您认为 JAR 在那里,请打开它并找到 .class 并检查路径。

You have to believe the error message you see. Instead of saying "I'm doing everything right", it's better to say "What have I missed?"

你必须相信你看到的错误信息。与其说“我做的一切都对”,不如说“我错过了什么?”

回答by skaffman

A ClassNotFoundExceptionsuggests that you don'thave Spring on the classpath. Make sure it's in your WAR's libdirectory.

AClassNotFoundException建议您在类路径上没有Spring。确保它在您的 WARlib目录中。

Also, make sure you also have commons-logging.jarin your classpath. Spring depends on this.

另外,请确保您commons-logging.jar的类路径中也有。春天取决于此。