Java 打印JAXB生成的bean
我有一个JAXB数据类,它是从Java 打印JAXB生成的bean,java,logging,jaxb,javabeans,tostring,Java,Logging,Jaxb,Javabeans,Tostring,我有一个JAXB数据类,它是从wsimport生成的,我想将它打印到控制台和/或日志中。不幸的是,没有生成toString 打印数据对象最简单的方法是什么?输出是原始XML还是其他内容并不重要,只要是可读的 看起来该类是一个有效的bean(正确命名为getter和setter),因此任何与bean一起工作的东西都可能很好。要打印到控制台,请尝试以下操作: jaxbContext.createMarshaller().marshal(jaxbObject, System.out); 要将其放入字
wsimport
生成的,我想将它打印到控制台和/或日志中。不幸的是,没有生成toString
打印数据对象最简单的方法是什么?输出是原始XML还是其他内容并不重要,只要是可读的
看起来该类是一个有效的bean(正确命名为getter和setter),因此任何与bean一起工作的东西都可能很好。要打印到控制台,请尝试以下操作:
jaxbContext.createMarshaller().marshal(jaxbObject, System.out);
要将其放入字符串
,请使用StringWriter
:
StringWriter writer = new StringWriter();
jaxbContext.createMarshaller().marshal(jaxbObject, writer);
String xmlString = writer.toString();
要获取JAXBContext对象,需要执行以下操作:
JAXBContext jaxbContext = JAXBContext.newInstance(<WhateverClass>.class);
取决于您定义上下文的位置和您的风格偏好
JAXBContext
是线程安全的,因此最好定义一个实例并共享它<代码>封送员和解封员
不做这样的保证。因此,它们需要根据需要创建。从哪里获得jaxbContext
?@Bart您必须传递一个可以找到此对象的包名列表,才能获得的实例。@asgs-您可以传递类或包名(包中包含jaxb.index
文件或ObjectFactory
)创建一个新的JAXBContext
@Blaise感谢您提供的信息。我刚从Java文档中理解了这一点。
JAXBContext jaxbContext = JAXBContext.newInstance(jaxbObject.getClass());