我奇怪地遇到这个问题:
[04/07/14 11:31:09:009 CEST] WARN servlet.PageNotFound: No mapping found for HTTP request with URI [/datapine-backend/heroku/resources] in DispatcherServlet with name 'rest'
但是,我检查了日志,我的方法已经映射了!
annotation.RequestMappingHandlerMapping: Mapped "{[/heroku/resources/],methods=[POST],params=[],headers=[],consumes=[],produces=[application/json],custom=[]}" onto public org.springframework.http.ResponseEntity<java.lang.String> com.datapine.heroku.HerokuController.provision(net.sf.json.JSONObject)
这是我的方法:
@Controller
public class HerokuController {
@RequestMapping(value = "/heroku/resources/", method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> provision(@RequestBody JSONObject body){
System.out.println("called! \n");
JSONObject response = new JSONObject();
response.put("id", 555);
response.put("message", "Provision successful!");
return new ResponseEntity<String>(response.toString(),HttpStatus.OK);
}
这是我的 web.xml
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rest</servlet-name>
<url-pattern>/heroku/*</url-pattern>
</servlet-mapping>
这是 rest-servlet.xml :
<beans:import resource="classpath:spring-properties-loader.xml"/>
<context:component-scan base-package="com.datapine.heroku" />
<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven />
</beans:beans>
可能是什么问题?
感谢。