我有一個帶註釋的休息控制器,如下所示。我能夠得到的服務託管很好,但只有當我設置爲每個服務在web.xml中的完整路徑:Spring 4 RestController調度器url模式
@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個服務,我寧願不做出新的servlet映射每個方法。當我嘗試「映射」通配符時會發生此問題。我試過/ service/,/ service和/ service/*。和其他許多組合。
大多數人都根本沒有正確映射,我收到404錯誤。如果我使用/服務/ *會搞調度Servlet時/服務/ 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