我有一个带注释的休息控制器,如下所示。我能够得到的服务托管很好,但只有当我设置为每个服务在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