Java(Jersey)-验证';结果';

Java(Jersey)-验证';结果';,java,rest,get,jersey,inputstream,Java,Rest,Get,Jersey,Inputstream,我对Java和REST事务非常陌生。我道歉,如果我没有问这个适当的,提供什么是必要的或不知道如何搜索适当的结果。请让我知道,如果还有什么需要回答这个问题 我已经创建了一个GET请求,现在正试图通过编程来检查它,以实现一些神奇的效果。如果这是一个常规的旧结果集,那么第一步就是验证结果集中是否有数据,这样我就知道我的逻辑在运行的下一个代码位上不会失败 我已经阅读了一些内容,看起来在我正在处理的代码末尾调用readEntity方法两次(一次在if语句中,一次在println中)以尝试进行此验证是导致此

我对Java和REST事务非常陌生。我道歉,如果我没有问这个适当的,提供什么是必要的或不知道如何搜索适当的结果。请让我知道,如果还有什么需要回答这个问题

我已经创建了一个GET请求,现在正试图通过编程来检查它,以实现一些神奇的效果。如果这是一个常规的旧结果集,那么第一步就是验证结果集中是否有数据,这样我就知道我的逻辑在运行的下一个代码位上不会失败

我已经阅读了一些内容,看起来在我正在处理的代码末尾调用readEntity方法两次(一次在if语句中,一次在println中)以尝试进行此验证是导致此错误的原因

一旦调用readEntity方法,输入流显然会关闭,因此,如果我使用它进行验证,它将被“耗尽”,并且我似乎无法在下一个逻辑步骤中访问它

有人能告诉我一种方法,我可以用它来实现我在代码末尾的if语句中为之工作的目标吗

谢谢大家!

    Client restClient = ClientBuilder.newClient();
    HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("restun","fift33n1010");
    restClient.register(feature);
    URI baseUri = UriBuilder.fromUri("http://hqidlfitwb01/rest").build();
    WebTarget target = restClient.target(baseUri);
    WebTarget resourceTarget = target.path("find").queryParam("searchFor", "Cabinets").queryParam("query", rackID).queryParam("matchOn", "User Attributes").queryParam("matchUserAttributes","RACKID");
    System.out.println("URI: "+resourceTarget.getUri());
    Response res=resourceTarget.request().get();
    if (!res.readEntity(String.class).equals(GlobalMethods.RESTFAILURE)) {
        System.out.println("  "+res.readEntity(String.class));
    }
    else {
        System.out.println("  Failure - No records!");  
    }
错误文本:

Exception in thread "main" java.lang.IllegalStateException: Entity input stream has already been closed.
at org.glassfish.jersey.message.internal.EntityInputStream.ensureNotClosed(EntityInputStream.java:228)
at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:854)
at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:808)
at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326)
at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:115)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:419)
at org.glassfish.jersey.client.InboundJaxrsResponse.runInScopeIfPossible(InboundJaxrsResponse.java:267)
at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:112)
at frompmtomaximo.AddEQFromSQL.add(AddEQFromSQL.java:50)
at IntegrationTesting.main(IntegrationTesting.java:22)

在“if”条件之前创建字符串变量,并使用“res.readEntity(String.class)”对其求值,而不是两次读取实体。。。我不敢相信我以前没有想到这一点。非常感谢。
String text = res.readEntity(String.class);
if (!text.equals(GlobalMethods.RESTFAILURE)) {
    System.out.println("  "+text);
}