相同的 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 解决了这个问题。我认为导致这个问题的唯一原因是因为我从不关闭我的实体管理器,所以下次我尝试创建一个新的实体管理器时,出现了一些问题,这就是为什么我有时会得到空值.
我有一个非常奇怪的错误,我不知道发生了什么。
我有一个这样的端点:
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 解决了这个问题。我认为导致这个问题的唯一原因是因为我从不关闭我的实体管理器,所以下次我尝试创建一个新的实体管理器时,出现了一些问题,这就是为什么我有时会得到空值.