2017-02-16 515 views
1

我有以下try塊中我期待從exchange方法的RestTemplate響應空字段:RestTemplate返回指定對象

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類型的響應,該請求被執行正確的狀態爲200 OK,但UserType模型的所有字段都爲空,因此我從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> 
+0

你能分享一個示例迴應嗎? – Coder

+0

我已經更新了我的問題,並提供了回覆示例 –

回答

0

我解決我的問題添加jackson依賴性在我pom.xml文件:

 <dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
     </dependency> 
+0

我遇到了同樣的問題,但是您的解決方案無法正常工作。 –

+0

我明白我的問題。 restTemplate.exchange方法不適用於我的實際Java版本1.8.0.151,我回到1.8.0.72它工作正常。最近的java版本發生了什麼? –