我試圖將第三方servlet集成到我的Spring Boot應用程序中,當我嘗試向servlet提交POST時,我在日誌中看到以下內容:在Spring Boot中不支持自定義Servlet中的@Bean POST
PageNotFound: Request method 'POST' not supported
我做了一個簡單的測試,顯示這一點。我開始使用auto generated Spring Boot project。然後,我創建了以下的Servlet:
public class TestServlet extends HttpServlet {
private static final Logger log = LoggerFactory.getLogger(TestServlet.class);
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp); //To change body of generated methods, choose Tools | Templates.
log.info("doPost was called!!");
}
}
然後我就按照創建的配置,如下所示:
@Configuration
public class ServletConfig {
@Bean //exposes the TestServlet at /test
public Servlet test() {
return new TestServlet();
}
}
然後我跑內Tomcat7的應用。我看到在日誌中:
ServletRegistrationBean: Mapping servlet: 'test' to [/test/]
然後我試着用捲曲打端點就像這樣:
curl -v http://localhost:8080/test -data-binary '{"test":true}'
或
curl -XPOST -H'Content-type: application/json' http://localhost:8080/test -d '{"test":true}'
我試着加入了@RequestMapping,但那也沒用。任何人都可以幫我弄清楚如何在Spring Boot應用程序中支持另一個Servlet?
你可以在這裏找到示例應用程序:https://github.com/andrewserff/servlet-demo
謝謝!
修復super.doPost後,嘗試使用真正的測試,它適用於斜線。我覺得自己像個假人......這是一個漫長的深夜! ;) 謝謝! –