У меня тоже проблемы: 1: отладка restTemplate, 2: отображение xml на pojo.
вот мой код
Pojo:
@XmlRootElement(name = "parent")
public class Parent {
private User user;
public Parent(){
}
//getter setter
}
еще одно Pojo
@XmlRootElement(name = "user")
public class User {
public User(){
}
private long id;
private String name;
private Date registrationDate;
}
У меня есть другой веб-сервис, который возвращает данные XML как:
<parent>
<user id="23" name="name">
<registrationdate>2012-02-27T13:08:31.771-05:00</registrationdate>
</user>
</parent>
Я использую Spring 3 и обновляю шаблон (в моем classpath у меня есть jaxb-api и jaxb-impl):
в моем контексте appilacation у меня есть:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"/>
и в моем слое обслуживания у меня есть:
@Service
public class ParentServiceI implements ParentService{
Logger logger = Logger.getLogger(this.getClass());
@Autowired
private RestTemplate restTemplate;
public Parent getMoreInfo() {
logger.info("getting info");
Parent p = restTemplate.getForObject("http://localhost:3128/dadad.xml", Parent.class);
logger.info(p.toString());
return p;
}}
моя первая проблема:
Когда я запустил этот код, у меня, конечно, были проблемы с отображением, но я не смог отладить его, я не смог увидеть любой журнал ошибок, любое исключение, в своей консоли я получил только это:
09:31:50,503 INFO 959993440@qtp159257116-0 ParentServiceI :64 - getting info
09:31:50,670 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:78 - Created GET request for "http://localhost:3128/dadad.xml"
09:31:50,971 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:520 - Setting request Accept header to [application/xml, text/xml, application/*+xml, application/json]
09:31:58,762 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:465 - GET request for "http://localhost:3128/dadad.xml" resulted in 200 (OK)
09:31:58,764 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:78 - Reading [com.mypackage.Parent] as "text/xml" using [org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter@7d6d4e3e]
И это все. без ошибок, код просто застрял там.
я получаю первое сообщение журнала "получение информации", я не получаю второе сообщение журнала
как я могу отладить это?
моя вторая проблема:
после правильной настройки pojo я получил некоторый результат:
09:31:50,503 INFO 959993440@qtp-159257116-0 ParentServiceI :64 - getting info
09:31:50,670 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:78 - Created GET request for "http://localhost:3128/dadad.xml"
09:31:50,971 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:520 - Setting request Accept header to [application/xml, text/xml, application/*+xml, application/json]
09:31:58,762 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:465 - GET request for "http://localhost:3128/dadad.xml" resulted in 200 (OK)
09:31:58,764 DEBUG 959993440@qtp-159257116-0 client.RestTemplate:78 - Reading [com.mypackage.Parent] as "text/xml" using [org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter@7d6d4e3e]
09:31:59,337 INFO 959993440@qtp-159257116-0 serviceI.EquipmentServiceI:83 - Parent [user=User [id=0, name=null, registrationDate=Mon Feb 27 13:08:31 EST 2012]]
все хорошо, кроме сопоставления?
как я могу это исправить?
Спасибо