Java应用程序-Rest API响应缓慢

我是Java新手,并尝试使用Jersey框架将Nest js状态代码之一转换为Java应用程序,

First thing I did was, create a db connection pool in a ServletContextListener

然后,我创建了@Post()方法并实现了登录过程,

看起来像这样

        @POST
        @Path("/login")
        @Consumes(APPLICATION_FORM_URLENCODED)
        public Response login(@FormParam("username") String login, @FormParam("password") String password) {
            try {
                Connection conn = (Connection) context.getAttribute("pool");
                UserAccount user = DBUtils.findUser(conn, login, password);
                if (user == null) {
                    HashMap<String, String> err = new HashMap<String, String>();
                    err.put("message", "Invalid user");
                    return Response.status(404).entity(err).build();
                }
                // TODO - get JWT token
                return Response.status(200).entity(user).build();
            } catch (Exception e) {
                return Response.status(500).build();
            }
        }

然后,我用Postman测试了该路线,并且首次接收响应需要10秒钟以上。

enter image description here

但是在首先要求其正常工作之后。由于我是Java EE的新手,所以我真的无法弄清楚可能是什么问题。

为什么在第一次请求中只花更长的时间?即使在服务器启动时也会创建数据库连接,所以发送请求后发生的唯一事情就是创建新线程并执行代码(我认为)。

Then I though maybe DBUtils.findUser(conn, login, password); take longer time for some reason. I remove that part and tested again but still it takes more than 10 seconds to receive the first request.

这可能是什么问题?

评论