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

RestTemplate返回指定对象的空字段

魏澄邈
2023-03-14

我有以下try块,在该块中,我期待来自RestTemplateExchange方法的响应:

try{            
    response = restOperations.exchange("http://localhost:8080/midpoint/ws/rest/users/00000000-0000-0000-0000-000000000002",
            HttpMethod.GET,
            new HttpEntity<String>(createHeaders("administrator", "5ecr3t")), 
            UserType.class);

    logger.info(response.getBody());
}

我期待的响应类型为UserType,请求正确执行,状态为200OK,但是UserType模型的所有字段都为null,因此我从REST调用接收的响应没有被绑定(映射)。usertype的必填字段注释为:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UserType", propOrder = {
    "fullName",
    "givenName",
    "familyName",
    "additionalNames",
    "locality",
    "assignment",
    "activation",
    "specialWithInternalizedName",
    "singleActivation", 
    "multiActivation",
    "multiActivationCopy",
    "singleConstruction",
    "multiConstruction",
    "multiConstructionCopy"
})
<?xml version="1.0" encoding="UTF-8"?>
<user xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3" xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3" xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3" xmlns:t="http://prism.evolveum.com/xml/ns/public/types-3" oid="00000000-0000-0000-0000-000000000002" version="194">
   <name>administrator</name>
   <metadata>
      <requestTimestamp>2017-01-31T14:04:14.575+01:00</requestTimestamp>
      <createTimestamp>2017-01-31T14:04:14.658+01:00</createTimestamp>
      <createChannel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#init</createChannel>
   </metadata>
   <assignment id="1">
      <metadata>
         <requestTimestamp>2017-01-31T14:04:14.575+01:00</requestTimestamp>
         <createTimestamp>2017-01-31T14:04:14.658+01:00</createTimestamp>
         <createChannel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#init</createChannel>
      </metadata>
      <targetRef oid="00000000-0000-0000-0000-000000000004" type="c:RoleType" />
      <activation>
         <effectiveStatus>enabled</effectiveStatus>
      </activation>
   </assignment>
   <activation>
      <administrativeStatus>enabled</administrativeStatus>
      <effectiveStatus>enabled</effectiveStatus>
      <enableTimestamp>2017-01-31T14:04:14.598+01:00</enableTimestamp>
      <lockoutStatus>normal</lockoutStatus>
   </activation>
   <iteration>0</iteration>
   <iterationToken />
   <roleMembershipRef oid="00000000-0000-0000-0000-000000000004" type="c:RoleType" />
   <fullName>midPoint Administrator</fullName>
   <givenName>midPoint</givenName>
   <familyName>Administrator</familyName>
   <credentials>
      <password>
         <lastSuccessfulLogin>
            <timestamp>2017-02-16T17:01:21.861+01:00</timestamp>
         </lastSuccessfulLogin>
         <previousSuccessfulLogin>
            <timestamp>2017-02-16T16:44:00.493+01:00</timestamp>
         </previousSuccessfulLogin>
         <metadata>
            <createTimestamp>2017-01-31T14:04:14.598+01:00</createTimestamp>
            <createChannel>http://midpoint.evolveum.com/xml/ns/public/gui/channels-3#init</createChannel>
         </metadata>
         <value>
            <t:encryptedData>
               <t:encryptionMethod>
                  <t:algorithm>http://www.w3.org/2001/04/xmlenc#aes128-cbc</t:algorithm>
               </t:encryptionMethod>
               <t:keyInfo>
                  <t:keyName>HZZUFItbX7fYQO41GT3PHJtIf2Q=</t:keyName>
               </t:keyInfo>
               <t:cipherData>
                  <t:cipherValue>SZusPiIgcrzoqDfm9uTzmrI6r4lG/OolTRIc7V/0aVo=</t:cipherValue>
               </t:cipherData>
            </t:encryptedData>
         </value>
      </password>
   </credentials>
</user>

共有1个答案

蒋永宁
2023-03-14

我解决了在pom.xml文件中添加Jackson依赖项的问题:

        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>
 类似资料:
  • web3.eth.getTransaction()方法返回具有指定哈希值的交易对象。 调用: web3.eth.getTransaction(transactionHash [, callback]) 参数: transactionHash:String - 交易的哈希值 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为返回结果。 返回值: 一个Pro

  • 我们有一个方法,其中我们收到一个

  • 我开始进入WP开发,我有问题与ACF后对象返回空,我不知道为什么。我创建了一个ACF,分类法的位置等于类别然后字段设置为... 字段名称:推荐的\u资源 然后在岗位上 我得到了无效的任何帮助或指向正确的方向都是非常感谢的。

  • 当在testng单元testcase中运行时,JAXB将XML文件解组到对象中工作正常。 当相同的代码被用来在另一个进程中解封相同的XML文件时,我得到了一个空对象。我可以验证对象是为XML文档中的每个元素创建的,并且所有适配器都被调用。在unmarshaller中设置事件处理程序,但没有验证问题。当我设置xmlns属性和前缀时,即使返回空对象,行为也略有不同。 我看了好几篇文章,但都无法与我面临

  • 问题内容: 我有一个文件夹,其中包含index.js和几个模型(类)index.js book.js author.js 问题在于Author类似乎找不到书!它只是一个空对象。但是,如果我在index.js中切换导出,则将Book放在Author之后- 可以,但是其他模型将停止工作。 我不想做任何骇客工作。 问题答案: 这是因为您具有循环依赖关系。Node.js以非常特定的方式处理此问题: 第一个

  • 以下模式在可选对象中包含非空字段(整个对象允许为空)。它定义了一个父对象的列表,这些父对象具有可选字段“孩子”——一些父对象允许具有空“孩子”。 以下GraphQL查询返回预期的父对象列表(其中一些具有null子值)。但它也返回附加到结果的错误。这是GraphQL(孩子是可选的)中的错误吗?还是预期行为?