日志对象到xml的输出不正确

时间:2017-02-22 15:19:16

标签: java logging jaxb marshalling

我需要记录XML消息。 我使用这段代码:

    //From object to xml
public String createMarshalerDealInfoType(DealInfoType dealInfoType) {
    StringWriter contactStr = null;
    try {
        JAXBContext jaxbContext = JAXBContext.newInstance(DealInfoType.class);
        Marshaller jaxbUnmarshaller = jaxbContext.createMarshaller();
        contactStr = new StringWriter();
        jaxbUnmarshaller.marshal(dealInfoType, contactStr);
    } catch (JAXBException e) {
        log.error(e.getMessage());
    }
    return contactStr.toString();
}

在测试课程中:

        ResponseType ResponseType = woNspDealWS.createRequestWS(DealRequestType);
        String DealResponce = updateDealEsb.createMarshalerDealInfoType(ResponseType.getDealInfo());
        log.debug("Response: \n " + DealResponce);

问题:在日志输出中,我只看到第一行的响应,而不是整个消息

    18:01:42,975 DEBUG updateDeal_Test:73 - Response:  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

如何以XML格式打印所有响应?

解决: 解决了使用注释@XmlRootElement进行测试的问题。

2 个答案:

答案 0 :(得分:1)

您在测试类中传递的对象可能为空 ResponseType.getDealInfo()

答案 1 :(得分:1)

要解决此问题,需要在测试类中使用注释@XmlRootElement