当前位置: 首页 > 知识库问答 >
问题:

调用WS REST时,“由于输入结束,没有要映射到对象的内容”

曾皓
2023-03-14

考虑以下方法:

@POST
@Path("/device")
@Consumes("application/json")
@Produces("application/json")
public String putDevice(String jsonObject, @Context HttpHeaders headers, Admin admin)
{
    ObjectMapper mapper = new ObjectMapper();

    try
    {
        return updateDevice(mapper.readTree(jsonObject), Utils.extractUserInfo(headers), admin.getServer(), admin.getPort());
    }
    catch (JsonProcessingException e)
    {
        return e.getMessage();
    }
    catch (IOException e)
    {
        return e.getMessage();
    }
}
@POST
@Path("/device")
@Consumes("application/json")
@Produces("application/json")
public Response putDevice(@Context HttpHeaders headers, Admin admin)
{
    String output = admin.toString();
    return Response.status(200).entity(output).build();
}

共有1个答案

岳正阳
2023-03-14

由于Arnaud发布的链接,我了解到您只能有一个没有注释的参数,并且其中一个将作为请求主体进行处理。所以我做了必要的修改,下面是该方法现在的样子:

@POST
@Path("/device")
@Consumes("application/json")
@Produces("application/json")
public String putDevice(String jsonString, @Context HttpHeaders headers)
{
    ObjectMapper mapper = new ObjectMapper();
    try
    {
    JSONObject jsonObject = new JSONObject(jsonString);
    return updateDevice(mapper.readTree(jsonString),
                        Utils.extractUserInfo(headers),
                        jsonObject.getString("server"),
                        jsonObject.getInt("port"));
}
    catch (JSONException e)
    {
        return e.getMessage();
    }
    catch (JsonProcessingException e)
    {
        return e.getMessage();
    }
    catch (IOException e)
    {
        return e.getMessage();
    }
}

我希望有一天它能帮助其他人解决同样的问题。

 类似资料:
  • 考虑以下方法: 当我从Postman调用WS时,我得到以下异常: 08-Feb-2019 14:23:44.138 GRAVE [http-nio-8080-exec-7] com.sun.jersey.spi.container.ContainerResponse.mapMappableContainerException MappableContainerException MappableC

  • 我正在尝试转换下一个字符串: 对于某些自定义对象: 此外,此CustomObject中还有另一个对象: 现在,我正在尝试做以下工作: 但我得到了下一个错误:

  • 我从服务器收到此响应 我试图使用Jackson解析器库解析这个json字符串,但是不知何故,我遇到了映射异常声明 为什么我们会有这种例外? 如何理解是什么导致了这个异常? 我正在尝试使用以下方式解析: 状态响应类

  • 我正在尝试在我的项目中实现JWTAuthentication。我的实体设置如下: 然后我像这样设置了AuthenticationFilter: 这是我的安全配置: 注册工作正常,但当我尝试使用相同的凭据登录时,会出现以下异常: 由: com.fasterxml.jackson.databind.exc.MismatchedInputException: 由于输入结束,没有要映射的内容 [来源: (

  • 问题内容: 我正在针对REST控制器POST处理程序进行集成测试。好吧,我正在努力。 它给我HttpMessageNotReadableException异常:无法读取JSON:由于输入结束,没有内容要映射 这是我的控制器: 基本测试类: 集成测试: 控制台日志必须说些什么: 有什么线索吗? 问题答案: 我将.param()方法替换为.content()方法之一: 现在,它可以按预期工作。

  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误: