1

对于这个错误,我已经尝试了互联网上存在的所有解决方案,但没有一个对我有用。所以,我再次询问是否有人有任何更新的解决方案,然后请帮助!

正如您在 dispatcher.xml 文件中看到的那样,我已经尝试使用 ContextLoader,但它给了我一个 404 File Not Found。我在 Stack Overflow 中看到了一个类似的帖子,上面提到了 @Controller,但我已经这样做了,但我仍然收到 404 错误。

我也尝试过 load-on-startup 1 /load-on-startup 方法,但这仍然不起作用。

 Type Exception Report

    Message Servlet.init() for servlet [dispatcher] threw exception

    Description The server encountered an unexpected condition that prevented it from fulfilling the 
    request.
 
    Exception
    javax.servlet.ServletException: Servlet.init() for servlet [dispatcher] threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.base/java.lang.Thread.run(Thread.java:832)

这是我的文件:

Web.xml

 <web-app 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://oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Archetype Created Web Application</display-name>


    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <!-- <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </context-param>

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

调度程序-servlet.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:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd">

    <tx:annotation-driven />
    
    <context:component-scan base-package="com.mayukh.Project"/>


    <bean
        class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        name="dataSource" p:driverClassName="com.mysql.jdbc.Driver"
        p:url="jdbc:mysql://localhost/projectdb" p:username="root"
        p:password="test" />

    <bean
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
        name="sessionFactory" p:dataSource-ref="dataSource">
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
        <property name="annotatedClasses">
            <list>
                <value>com.mayukh.Project.entity.User</value>
            </list>
        </property>
    </bean>

    <bean class="org.springframework.orm.hibernate5.HibernateTemplate"
        name="hibernateTemplate" p:sessionFactory-ref="sessionFactory" />

    <bean
        class="org.springframework.orm.hibernate5.HibernateTransactionManager"
        name="transactionManager" p:sessionFactory-ref="sessionFactory" />

    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        name="viewResolver">
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>


</beans>

控制器:

 package com.mayukh.Project.controller;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    import com.mayukh.Project.entity.User;
    import com.mayukh.Project.services.UserService;

    @Controller
    public class UserController {

    @Autowired
    private UserService service;

    @RequestMapping("registrationPage")
    public String showRegistrationPage() {
        return "userReg";
    }

    @RequestMapping(value = "registerUser", method = RequestMethod.POST)
    public String registerUser(@ModelAttribute("user") User user, ModelMap model) {
        int result = service.save(user);
        model.addAttribute("result", "User created with ID " + result);
        return "regResult";
    }

    public UserService getService() {
        return service;
    }

    public void setService(UserService service) {
        this.service = service;
    }
}
4

0 回答 0