У меня мало опыта по настройке Spring, и мне трудно это делать. То, что я пытаюсь сделать, это успешно сопоставить URL-адрес контроллера, используя аннотации. Кроме того, я хотел бы получить доступ к HttpRequest и, опционально, HttpResponse. Это потому, что я хотел бы использовать Джексона, чтобы писать и анализировать json напрямую в / из байтовых потоков. Теперь я знаю, что Spring имеет JSON-представления с использованием встроенного Джексона, но я хотел бы сначала получить приличную опору, так как теперь я не могу правильно настроить отображение.
web.xml
<display-name>Kerris 2</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/*-config.xml
</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
приложение-confix.xml
<context:annotation-config />
<context:component-scan base-package="servlet" />
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
DayController
package servlet;
@Controller
@RequestMapping("/days/*")
public class DayController {
private DayDAO dayDao;
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody void test(HttpResponse response){
System.out.println("Days GET");
}
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody void test2(HttpRequest request, HttpResponse response){
System.out.println("Days POST");
}
public void setDaydao(DayDAO dayDao) {
this.dayDao = dayDao;
System.out.println("Days Dao assigned");
}
}
Когда я просматриваю журнал сервера, я вижу там следующие строки
INFO: Mapped URL path [/days/*] onto handler 'dayController'
INFO: Mapped URL path [/days/*.*] onto handler 'dayController'
INFO: Mapped URL path [/days/*/] onto handler 'dayController'
Также, когда я тестирую приложение в contextroot / , я вижу стандартный Hello World! стр. Когда я пытаюсь contextroot / days / , я получаю 404. Когда я пытаюсь contextroot / days / test также 404. Может ли кто-нибудь указать мне на то, что я делаю неправильно?