相同的 GET 请求相同 URL 给出不同的响应,奇怪的行为

Same GET request to same URL give different Response, strange behavior

我有一个非常奇怪的错误,我不知道发生了什么。

我有一个这样的端点:

 private void init() {
    if (ioConfigurationDAO == null) {
      ioConfigurationDAO = new IOConfigurationDAO();
      ioConfigurationDAO.init();
    }

    property = new AigatewayProperty();
 }

  @GET
  @Path("/{id : \d+}")
  @Produces(MediaType.APPLICATION_JSON)
  public Response getIoConfiguration(@PathParam("id") Integer id) {
    init();
    if (!ChannelName.isValidChannel(id)) {
      return Response.status(Response.Status.NOT_FOUND).build();
    }
    IOConfiguration ioConfig = ioConfigurationDAO.findIOConfiguration("CH" + id);
    System.out.println(ioConfig.getConversionType());
    // close();
    return Response.status(Response.Status.OK).entity(ioConfig).build();
  }

当我对此url提出请求时:http://localhost:8080/aigateway/rest/ioconfiguration/3

有一段时间,我得到了正确的回复:

{"ioConfigurationId":"CH3","active":true,"name":"1","conversionType":"Linear","mInfo":0.32,"bInfo":0.55,"voltageDivide":"/4","sampleRange":"24 Bits","samplePeriod":10,"storeRaw":false,"storeConverted":false,"defaultGraph":"Line","title":"","unit":"","rangeLowerbound":0,"rangeUpperbound":100,"code":"function conversion_CH3 (input) {\n\treturn input;\n}"}

有时,我得到空值的错误响应:

{"ioConfigurationId":"CH3","active":null,"name":null,"conversionType":null,"mInfo":null,"bInfo":null,"voltageDivide":null,"sampleRange":null,"samplePeriod":null,"storeRaw":null,"storeConverted":null,"defaultGraph":null,"title":null,"unit":null,"rangeLowerbound":null,"rangeUpperbound":null,"code":null}

不知道怎么回事

有一件事值得一提:

我必须手动启动我的实体管理器,因为我的 EJB 注释不起作用,而且我没有关闭与数据库的连接,因为我不知道应用程序何时结束。我不知道这是否是导致此问题的原因。

有人请帮助我,如果您需要更多信息,我愿意分享。

谢谢!

我通过正确使用EJB 解决了这个问题。我认为导致这个问题的唯一原因是因为我从不关闭我的实体管理器,所以下次我尝试创建一个新的实体管理器时,出现了一些问题,这就是为什么我有时会得到空值.