将xml的一部分传递给@XmlAnyElement

时间:2020-02-13 22:46:33

标签: java xml string jaxb marshalling

这是我的createOrder类。在消息中,我正在传递xml消息,如下所示。在发送以下xml之前,我将嵌入msg的begin和end标记。但是,我在下面的所有日志消息中都得到了null。

            <head>
               <Routing>8260|1700|0540</Routing>          
            </head>
            <body>
                  <Business>
                     <BusinessUnit>0</BusinessUnit>
                  </Business>
           </body>

public CreateOrderResponseType createOrder(String message) {
        log.info("Entering createOrder for OSMClient..." );

        CreateOrderRequestType createOrderRequestType = new CreateOrderRequestType();
        Document doc;
        try {
            doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
            Element msg = doc.createElement("msg");
            msg.setTextContent(message);
            log.info("msg = " + msg);
            doc.appendChild(msg);
            log.info("doc = " + doc.toString());
            log.info("doc firstChild = " + doc.getFirstChild().toString());
            createOrderRequestType.getAny().add((Element) doc.getFirstChild());

            JAXBContext jc = JAXBContext.newInstance(CreateOrderRequestType.class);
            Marshaller marshaller = jc.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            marshaller.marshal(createOrderRequestType, System.out); 

        } catch (ParserConfigurationException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        } catch (JAXBException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

有人可以帮我为什么我得到空值吗?

0 个答案:

没有答案