首页 > 解决方案 > JAXB - StringWriter 修剪字符串转换的值,但在控制台中打印整个 xml 字符串

问题描述

我正在尝试将 java 对象转换为 XML 字符串以将字符串值传递给 RabbitMQ 队列。但是,当我这样做时,我使用 StringWriter 将 XML 字符串打印到控制台,并将 XML 写入 StringWriter。下面是我的代码片段

//Create JAXB Context
            JAXBContext jaxbContext = JAXBContext.newInstance(BiothenticateABCWSRequest.class);
             
            //Create Marshaller
            Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
 

            jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            
            //Print XML String to Console
            StringWriter sw = new StringWriter();
             
            //Write XML to StringWriter
            jaxbMarshaller.marshal(biothenticateABCWSRequest, sw);
             
            //Verify XML Content
            xmlContent = sw.toString();
            System.out.println( xmlContent);

图像-1 在此处输入图像描述

图像-2 在此处输入图像描述

Image-3 在此处输入图像描述

上面我遇到了 StringWriter 的问题。当我将 StringWriter sw 对象转换为字符串对象 xmlContent 并返回它时,它会修剪返回的 xml 值,并且相同的字符串对象 xmlContent 在控制台中打印完整的值。

例如:在Image-1中,我有来自方法 args 的对象,它有其填充值,而Image-2你可以 StringWriter sw 对象在结尾有修剪值,如.... 但在Image-3中,它在控制台中打印了 StringWriter sw 对象值。在这里,您可以看到它具有完整的价值。

控制台中没有修剪字符串对象 xmlContent 长度为 2,32,442

带修剪返回的字符串对象 xmlContent 长度为 10,009。

我不明白为什么 StringWriter 在编组后无法从对象返回完整的 xml 值xmlContent = sw.toString();。请帮助我。

标签: javarabbitmqjaxbmarshalling

解决方案


推荐阅读