当前位置: 首页 > 面试题库 >

带有响应参数的方法中的IllegalStateException

姬经义
2023-03-14
问题内容

我编写了一个简单的类来测试响应读取实体方法(如果它按我的预期工作)。但是效果不佳。

当我启动课程时,出现以下错误response.readEntity()

Exception in thread "main" java.lang.IllegalStateException: Method not

supported on an outbound message.
at
org.glassfish.jersey.message.internal.OutboundJaxrsResponse.readEntity(OutboundJaxrsResponse.java:150)


这是我写的代码

public static void main(String[] args) {
        List<Entity> representations = new ArrayList<>();
        representations.add(new Entity("foo", "baz", false));
        representations.add(new Entity("foo1", "baz1", true));
        representations.add(new Entity("foo2", "baz2", false));
        Response build = Response.ok(representations).build();
        printEntitesFromResponse(build);
    }

public static void printEntitesFromResponse(Response response) {
        response
                .readEntity(new GenericType<List<Entity>>() {})
                .stream()
                .forEach(entity -> System.out.println(entity));
    }

我究竟做错了什么?


问题答案:

Responsees 有两种类型,入站和出站,尽管它们仍使用相同的接口。出站是从服务器发送响应时

Response response = Response.ok(entity).build();

入站是指您在客户端上收到响应时。

Response response = webTarget.request().get();

readEntity在服务器端出站响应上禁用了该方法,因为您不需要它。仅在需要对响应流的响应进行_de_serialize时使用。但是出站时没有任何东西。

如果您希望实体出站响应,只需使用
Response#getEntity()



 类似资料:
  • 我已经得到了一个抽象类位置的UML图。该类有一个变量字符串名称。它的方法是addEmployee(employee:employee):boolean。 Employee类与Location类相关联。Employee类必须包含变量String name和String address以及方法getName():String和getAddress():String 我不确定如何制作addEmploye

  • 我试图编写一个方法,它接受@PathVariable参数,并将用户重定向到一个jsp文件。 @pathvariable(value=“customerId”)字符串customerId @pathvariable(name=“customerId”)字符串customerId @pathvariable(“customerId”)字符串customerId 谢谢你的帮助。

  • 是否有可能将方法引用与参数一起使用?我喜欢流的想法,我只是想让代码更易读。 实际上,我认为有一个类似的问题,方法引用了一个参数,我读了,但不知道如何在我的代码中使用bind2方法。这是唯一的解决办法吗?

  • 我已经用Java开发了一个应用程序,我正在尝试使用Powermockito创建单元测试(我应该补充一点,我是单元测试新手)。 我有一个名为Resource的类,它有一个名为readResources的静态方法: ResourcesElement也由我编写。在测试中,我想创建自己的资源,所以我希望上面的方法什么都不做。我试着使用以下代码: 单元测试引发异常: org.mockito.exceptio

  • 问题内容: 在Java 8中,具有以下类 可以通过方法引用来调用setBornTrue方法: 但是我将如何使用forEach方法并通过 方法引用 使用setBorn ?试: 导致错误“无法解析方法setBorn”。 另外,我该如何传递True的值? 问题答案: 使用lambda: 没有发现仅使用Java 8 API的其他方法。 使用此自定义功能: 你可以做: 如果Java API或库中提供了这种实

  • 我试图模仿下面的行,但它在执行时给出了一个错误,它说: 此处检测到错误的参数匹配器: when(mock.get(anyInt())).thenreturn(null); doThrow(new RuntimeException()).When(mock).SomeVoidMethod(anyObject()); verify(mock).somemethod(contains(“foo”)) 这