Индексную страницу можно открыть, но все страницы, доступные через контроллер, имеют ошибку 404. ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Индексную страницу можно открыть, но все страницы, доступные через контроллер, имеют ошибку 404.

Сообщение Anonymous »

Я новичок в Spring MVC. Когда я написал свою первую программу с использованием IDEA, после того как я написал интерфейсный контроллер, контроллер вообще не работал. И была сообщена следующая ошибка. Я использовал Maven для управления зависимостями.

Код: Выделить всё

24-Mar-2026 12:30:38.355 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log 将servlet[DispatcherServlet]标记为不可用
24-Mar-2026 12:30:38.355 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.loadOnStartup web应用程序[/springmvc_001_Web_exploded]中的Servlet[DispatcherServlet]引发了load()异常
java.lang.ClassNotFoundException:  o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . D i s p a t c h e r S e r v l e t < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . l o a d e r . W e b a p p C l a s s L o a d e r B a s e . l o a d C l a s s ( W e b a p p C l a s s L o a d e r B a s e . j a v a : 1 2 2 5 ) < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . l o a d e r . W e b a p p C l a s s L o a d e r B a s e . l o a d C l a s s ( W e b a p p C l a s s L o a d e r B a s e . j a v a : 1 0 5 6 ) < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . c o r e . D e f a u l t I n s t a n c e M a n a g e r . l o a d C l a s s ( D e f a u l t I n s t a n c e M a n a g e r . j a v a : 4 7 4 ) < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . c o r e . D e f a u l t I n s t a n c e M a n a g e r . l o a d C l a s s M a y b e P r i v i l e g e d ( D e f a u l t I n s t a n c e M a n a g e r . j a v a : 4 5 7 ) < b r   / >                 a t   o r g . a pache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:753)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:693)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4177)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:564)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:663)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1746)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:249)
at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)
at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:414)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:368)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:249)
at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)
at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
at java.management/com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:472)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1472)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1310)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1412)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
1.web.xml:

Код: Выделить всё



DispatcherServlet
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath*:springmvc-config.xml

1



DispatcherServlet
/


2.springmvc-config.xml 3.HelloController.java

Код: Выделить всё

package com.quincy.ch14.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
@RequestMapping( "/register")
public String register(){
System.out.println("=====HelloController.register() is running===");
return "register";
}
@RequestMapping("/login")
public String login(){
System.out.println("=====HelloController.login() is running===");
return "login";
}
}
4.pom.xml

Код: Выделить всё

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.quincy
[url=register]register[/url] | [url=login]login[/url]


register.jsp:

Код: Выделить всё



Title


[*][url=index.jsp]goto index[/url]
[*][url=login]goto login[/url]


login.jsp:

Код: Выделить всё



Title


[*][url=index.jsp]goto index[/url]
[*][url=register]goto register[/url]


и структура файла:
введите здесь описание изображения
Индексную страницу можно открыть, но когда я получил к ней доступ через контроллер, она выдала ошибку 404.

Вернуться в «JAVA»