Я запускаю Spring MVC на сервере приложений JBoss.
Файл: jboss-web.xml:
<jboss-web>
<context-root>/foo/bar/baz</context-root>
</jboss-web>
Корень контекста определяется как / foo / bar / baz, что я могуне меняется.
Файл: web.xml:
<servlet>
<servlet-name>spring-rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
В нем сервлет-диспетчер сопоставлен с URL "/"
Java: (Контроллер)
@RequestMapping(value="/rest/*", method = RequestMethod.POST)
@ResponseBody
public SomeResponse processRequest(@RequestBody SomeRequest someRequest)
{
return someResponse;
}
Я пытаюсь обработать запрос этим способом.
Когда Spring загружается в JBoss, я вижу следующее: [
DefaultAnnotationHandlerMapping] Mapped URL path [/rest/*] onto handler 'MyController'
[DefaultAnnotationHandlerMapping] Mapped URL path [/rest/*.*] onto handler 'MyController'
[DefaultAnnotationHandlerMapping] Mapped URL path [/rest/*/] onto handler 'MyController
'
Я пытаюсь получить доступ к: http://localhost:8080/foo/bar/baz/rest,, что я вижу:
WARN [PageNotFound] Не найдено сопоставление для запроса HTTP с URI [/ foo / bar / baz / rest] в DispatcherServlet с именем'spring-rest'
Но когда я изменяю значение на "/ " с "/ rest / " в Java как:
@RequestMapping(value="/*", method = RequestMethod.POST)
Тогда оно работает нормально.Как исправить проблему?
spring-rest-servlet.xml:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="alwaysUseFullPath" value="true"/>
</bean>
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="alwaysUseFullPath" value = "true" />
</bean>