У меня есть контроллер аннотированного отдыха, как показано ниже. Я в состоянии получить услуги для размещения в порядке, но только если я настроить полный путь для каждого отдельного сервиса в web.xml:Spring 4 RestController Dispatcher url-pattern
@RestController
@RequestMapping("/service/")
public class StuffRestController
{
@RequestMapping("/getStuffList")
public List<Stuff> getStuffList() {
... make stuff ...
return stuffList;
}
... many other similar services ...
}
Это действительно единственный источник ресурсов в моем приложении; хотя, мы используем весеннюю безопасность.
Ниже являются только линии spring4-servlet.xml:
класс<mvc:annotation-driven />
<context:component-scan base-package="com.me.stuff.presentation.controller" />
<context:component-scan base-package="com.me.stuff.security" />
StuffRestController находится в "..." контроллер пакета.
web.xml:
<servlet>
<servlet-name>spring4</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring4-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring4</servlet-name>
<url-pattern>/service/getStuffList</url-pattern>
</servlet-mapping>
Все вышеперечисленное на самом деле все работает нормально, и денди, но есть 30 других услуг в этом контроллере, и я предпочел бы не сделать новое отображение сервлета для каждого метода. Проблема возникает, когда я пытаюсь «подстановить» отображение. Я пробовал/сервис/,/сервис, и/сервис/*. И многие другие комбинации.
Большинство всего просто неправильно отображают карту, и я получаю 404 ошибки. Если я использую/обслуживание/* будет заниматься диспетчеру сервлет, когда// getStuffList называется сервис, но он отвечает:
WARNING: No mapping found for HTTP request with URI [/myapp/service/getStuffList] in DispatcherServlet with name 'spring4'
Я уверен, что это что-то просто с тем, как создаются URL отображения, но ускользает от меня.
Какой URL-адрес вы нажимаете? –
«http: // localhost: 8080/myapp/service/getStuffList» ... который отлично работает, если у меня есть web.xml, настроенный так, как я делаю в сообщении, но я бы предпочел, чтобы улавливал весь шаблон URL для все/обслуживание/и ниже. – slambeth