有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获得这个组织。springframework。网状物servlet。DispatcherServlet noHandlerFound错误和警告:在Spring MVC中未找到HTTP请求URI的映射

enter image description here 索引。jsp

<html>
    <body>
        <form action="add">
            <input type="text" name="t1"><br>
            <input type="text" name="t2"><br>
            <input type="submit" />
        </form>
    </body>
</html>

网络。xml

<!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <servlet>
        <servlet-name>telusko</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>telusko</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

telusko servlet。xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:ctx="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd ">
    <!-- <mvc:default-servlet-handler/>  -->
    <mvc:annotation-driven/>
    <ctx:annotation-config></ctx:annotation-config>
    <ctx:component-scan base-package="resources.com.telusko"></ctx:component-scan>
</beans>

添加控制器。java

package com.telusko;

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

@Controller
public class AddController {
    @RequestMapping("/add")
    public void add() {
        System.out.println("i am here");
    }
}

我有一个索引。我在其中声明action=/add的jsp文件。现在在网上。xml中声明一个调度程序,在该调度程序中指定servlet名称登录。然后制作一个telusko servlet。xml,其中定义基本包:

<ctx:component-scan base-package="com.telusko"></ctx:component-scan>

之后,创建一个logincontroller类,并在logincontroller类的方法上使用注释@Controller@RequestMapping("/add)。然后运行索引。jsp文件仍然告诉我为什么noHandlerFound错误发生在登录servlet中。xml。我已经给出了基本包的名称com。特鲁斯科,这里是控制器。java文件就在那里

I should get "i am here" message on console but not getting it instead of that getting WARNING: No mapping found for HTTP request

Sep 26, 2018 10:47:36 PM org.springframework.web.servlet.DispatcherServlet 
initServletBean
INFO: FrameworkServlet 'telusko': initialization started
Sep 26, 2018 10:47:36 PM 
org.springframework.web.context.support.XmlWebApplicationContext 
prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'telusko-servlet': 
startup date [Wed Sep 26 22:47:36 IST 2018]; root of context hierarchy
Sep 26, 2018 10:47:36 PM 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader 
loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB- 
INF/telusko-servlet.xml]
Sep 26, 2018 10:47:38 PM org.springframework.web.servlet.DispatcherServlet 
initServletBean
INFO: FrameworkServlet 'telusko': initialization completed in 2096 ms
Sep 26, 2018 10:47:38 PM org.apache.catalina.core.StandardWrapperValve 
invoke
SEVERE: Servlet.service() for servlet [telusko] in context with path 
[/DemoMVC] threw exception [Servlet execution threw an exception] with root 
cause
java.lang.NoSuchMethodError:   
org.springframework.http.HttpMethod.resolve(Ljava/lang/String;)
Lorg/springframe 
ork/http/HttpMethod;
at 

org.springframework.web.servlet.FrameworkServlet.service
(FrameworkServlet.java:8 
41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at 

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java:231)
 at 


 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java:166)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
 at 

 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:193)
at 

org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:166 at 
org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:199)at 

org.apache.catalina.core.StandardContextValve.invoke
 (StandardContextValve.java:96)at 

org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.jav 
a:490)
at 
org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:139)
    at 
org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:92)
at 

org.apache.catalina.valves.AbstractAccessLogValve.invoke
(AbstractAccessLogValve. 
java:668)
at 

org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:74)
at 
org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:343)
at 
org.apache.coyote.http11.Http11Processor.service
(Http11Processor.java:408)at 

org.apache.coyote.AbstractProcessorLight.process
 (AbstractProcessorLight.java:66)at 

org.apache.coyote.AbstractProtocol$ConnectionHandler.process
(AbstractProtocol.ja 
va:770)at 

org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun
(NioEndpoint.java:1415)at 

org.apache.tomcat.util.net.SocketProcessorBase.run
(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at 



org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run
(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

共 (6) 个答案

  1. # 1 楼答案

    我面临着同样的问题,所有答案都不起作用。在网络上做了一些改变之后。它解决了我的问题。我只是添加了dispatcher servlet的路径。web中的xml。xml。附上图片

    enter image description here

  2. # 2 楼答案

    @Component
    @RequestMapping(path="/add")
    public class AddController {
    
        @RequestMapping(method=RequestMethod.GET)
        public void add() {
            System.out.println("I'm here");
        }
    }
    
  3. # 3 楼答案

    我花了一整天的时间才知道解决办法。当您创建maven项目时,默认情况下它不会在“javaResource/src/main”下创建“java”文件夹,这是获取控制器路径所必需的

    确保首先在“javaResource/src/main”中创建java文件夹,然后创建包和控制器

    附上截图供参考

    enter image description here

  4. # 4 楼答案

    在您的配置中添加viewResolver bean,我假设您的视图位于“WEB-INF/jsp”中

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

    编辑:

    <ctx:component-scan base-package="resources.com.telusko"></ctx:component- 
    scan>
    

    <ctx:component-scan base-package="com.telusko"></ctx:component- 
    scan>
    

    更改您的请求方法

    @RequestMapping("/add")
    public String add()
    {
        System.out.println("i am here");
        return "index"; //return your view to render
    }
    

    希望能成功

  5. # 5 楼答案

    我也遇到了同样的问题,下面项目文件夹结构的改变解决了我的问题

    按如下所示更改文件夹结构,如果没有可用的java文件夹,请创建它。你的AddController。java应该出现在/src/main/java下。更改后,您可以在日志中看到SOP

    /src/main/resources到/src/main/java

  6. # 6 楼答案

    在项目结构中,com。创建控制器的telusko包应该位于Java Resources/src/main/Java文件夹下,该文件夹缺失,可以通过查看项目属性并单击Java构建路径来创建。在那里,请选择“源”选项卡并删除丢失的文件夹。然后再次创建或添加具有相同文件夹路径和名称的文件夹。这将在项目结构中创建一个文件夹src/main/java。在这条路里面,com。应移动或创建带有控制器的telusko包。再次清理并运行服务器。现在可以了