Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印JAXB生成的bean_Java_Logging_Jaxb_Javabeans_Tostring - Fatal编程技术网

Java 打印JAXB生成的bean

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); 要将其放入字

我有一个JAXB数据类,它是从
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());