Ale*_*uez 6 java postgresql persistence hibernate spark-java
我想做点什么来用spark + java + hibernate + postgres注册用户
这是我的代码:
post("/registrar", (request, response) -> {
EntityManagerFactory emf = Persistence.
createEntityManagerFactory("compradorcitoPU");
EntityManager em = emf.createEntityManager();em.getTransaction().begin();
em.persist(u);
em.getTransaction().commit();
em.close(); return null; });
Run Code Online (Sandbox Code Playgroud)
但是这个错误出现了:
INFO spark.webserver.MatcherFilter - 请求的路径[/ registrarnull]尚未在Spark中映射
我遇到了类似的问题.我要归还的物品很大,我想把它们写出来.所以,我的软件看起来像这样:
post("/apiserver", "application/json", (request, response) -> {
log.info("Received request from " + request.raw().getRemoteAddr());
ServerHandler handler = new ServerHandler();
return handler.handleRequest(request, response);
});
Run Code Online (Sandbox Code Playgroud)
在我的处理程序中,我获得了原始的HttpResponse对象,打开了它的OutputStream并像这样写了:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(response.raw().getOutputStream(), records);
Run Code Online (Sandbox Code Playgroud)
因为我知道我已经在OutputStream上写了调用者在那时要求的内容(或错误),我想我可以返回null.我的程序运行正常.Spark会按预期将请求路由到我的处理程序.而且,由于我正在编写原始OutputStream,因此我回到了客户端的预期.但是,我一直在服务器日志中看到消息'/ apiserver route not defined'.
在查看Spark文档时,它说:
Spark应用程序的主要构建块是一组路由.路线由三个简单的部分组成:
动词(get,post,put,delete,head,trace,connect,options)
路径(/ hello,/ users /:name)
回调(请求,响应) - > {}
显然Spark不知道你在原始的HttpResponse上写了什么,作为一个web服务器,你应该向调用者提供一些响应.因此,如果您的响应为空,则表示您尚未满足提供回调的要求,并且您会收到错误,即即使Spark按预期行为也没有找到映射.只返回一个响应(null不是响应,"200 OK"就是),错误就会消失.
[编辑]拼写和语法.