Spring mvc 是什么导致此Spring MVC应用程序中的映射失败?
我试图让一个非常简单的Spring@mvc应用程序工作,但我遇到了一个似乎是映射错误的问题 从web.xml:Spring mvc 是什么导致此Spring MVC应用程序中的映射失败?,spring-mvc,Spring Mvc,我试图让一个非常简单的Spring@mvc应用程序工作,但我遇到了一个似乎是映射错误的问题 从web.xml: <servlet> <servlet-name>works</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-
<servlet>
<servlet-name>works</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>works</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
works-servlet.xml:
<context:component-scan base-package="com.ami.dbconnect.controller" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="TESTController" class="com.ami.dbconnect.controller.TESTController"></bean>
<!-- view resolver not shown -->
我试图用url:localhost:8080/works/test调用控制器
在tomcat7标准中,我看到:
1106[pool-2-thread-1]DEBUG org.springframework.web.servlet.DispatcherServlet-已发布的servlet“works”的WebApplicationContext作为名为[org.springframework.web.servlet.FrameworkServlet.CONTEXT.works]的ServletContext属性
1106[pool-2-thread-1]INFO org.springframework.web.servlet.DispatcherServlet-frameworkervlet“works”:初始化在728毫秒内完成
1106[pool-2-thread-1]调试org.springframework.web.servlet.DispatcherServlet-servlet“工作”配置成功
14068[http-apr-8080-exec-2]DEBUG org.springframework.web.servlet.DispatcherServlet-名为'works'的DispatcherServlet处理[/works/test]的GET请求
14071[http-apr-8080-exec-2]WARN org.springframework.web.servlet.PageNotFound-在名为“works”的DispatcherServlet中未找到URI为[/works/test]的http请求的映射
所以我的问题(最后!):
Spring是否无法识别控制器中的注释?如果不是,这个简单的设置会有什么问题
谢谢你的帮助和建议,
beeky您需要将
@RequestMapping
注释移动到您的serviceRequest
方法中
类级别的
@RequestMapping
可用于为该类的所有带注释的@RequestMapping
-指定公共路径前缀,但如果没有方法级别的注释,则不会产生任何效果。问题可能出在servlet映射部分?
尝试更改:
<servlet-mapping>
<servlet-name>works</servlet-name>
<url-pattern>/works/*</url-pattern>
</servlet-mapping>
作品
/工作/*
然后再试一次
webapps
/works
/WEB-INF
/classes
/lib
<servlet-mapping>
<servlet-name>works</servlet-name>
<url-pattern>/works/*</url-pattern>
</servlet-mapping>