Доброго времени суток, уважаемый ЛОР. Давно не работал со спрингом, приходится вспоминать. Неожиданно возникла проблема.
Версию спринга тяну maven'ом с central (4.0.1.RELEASE)
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</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>
</web-app>
dispatcher-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context">
<mvc:annotation-driven />
<bean id="sessionBean" class="net.test.spring.beans.SessionBean" scope="session" >
<aop:scoped-proxy />
</bean>
<bean id="singletonBean" class="net.test.spring.beans.SingletonBean" >
<property name="sessionBean" ref="sessionBean" />
</bean>
</beans>
Контроллер:
package net.test.spring.controller;
import net.test.spring.beans.SessionBean;
import net.test.spring.beans.SingletonBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@org.springframework.stereotype.Controller
@RequestMapping(value = "api")
public class Controller {
@Autowired
public Controller(SingletonBean singletonBean) {
this.singletonBean = singletonBean;
}
private SingletonBean singletonBean;
@RequestMapping(value = "/bean", method = RequestMethod.GET)
@ResponseBody
public SessionBean getSessionBeanFromSingletonOne() {
return singletonBean.getSessionBean();
}
}
По адресу localhost:<port>/api/bean получаю:
eb 4, 2014 7:38:02 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/api/bean] in DispatcherServlet with name 'dispatcher'
Задеплоено на tomcat, приложение контекста не имеет, причем пробовал его выставлять. Читать выхлоп умею. Не понимаю, почему так. Да, пробовал и «api» и «/api» в контроллере. Напомни, ЛОР, что я забыл? Спасибо.