2017-02-16 9 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? –

Смежные вопросы