我正在进行将MongoDB转换为XML的Spring批处理。我有以下两个代码片段。
首先:
com.mkyong.model.Report
第二个
com.mkyong.model.Report
两种配置都没有格式化输出文件。结果只打印在一行XML文件中。我原以为第一个配置将格式化结果,但事实并非如此。
JAXB_FORMATTED_OUTPUT
用于指定编组的XML数据是否使用换行符和缩进进行格式化的属性的名称。但不幸的是,这种情况并未发生。
我在单行XML文件中看到的输出:
pom.xml
1.7
UTF-8
UTF-8
4.3.5.RELEASE
3.0.7.RELEASE
1.8.4.RELEASE
3.1.1
1.0.13
1.7.5
1.7.12
4.12
org.springframework
spring-core
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework.batch
spring-batch-core
${spring.batch.version}
org.springframework.batch
spring-batch-infrastructure
${spring.batch.version}
org.springframework.batch
spring-batch-test
${spring.batch.version}
org.mongodb
mongo-java-driver
${mongodb.driver.version}
org.slf4j
slf4j-api
${slf4j.version}
compile
ch.qos.logback
logback-classic
${logback.version}
runtime
org.slf4j
jcl-over-slf4j
${jcl.slf4j.version}
org.springframework.data
spring-data-mongodb
${spring.data.version}
javax.xml.bind
jaxb-api
2.2.12
junit
junit
${junit.version}
test
org.testng
testng
6.8.5
test
我正在使用以下内容:
根据Karthik的输入:
encoding="ISO-8859-1"?>
01-06-2013
139237
40
220.90
02-06-2013
339100
60
320.88
03-06-2013
431436
76
270.80
12-03-2016
534987
43
454.80
看这个JIRA Ticket,这个问题在春批中还没有修复。但是,有解决此问题的方法。
添加maven依赖项。
net.java.dev.stax-utils
stax-utils
20070216
创建自定义类。
public class IndentingStaxEventItemWriter extends StaxEventItemWriter {
private boolean indenting = true;
@Override
protected XMLEventWriter createXmlEventWriter( XMLOutputFactory outputFactory, Writer writer) throws XMLStreamException {
if (indenting) {
return new IndentingXMLEventWriter( super.createXmlEventWriter( outputFactory, writer ) );
}
else {
return super.createXmlEventWriter( outputFactory, writer );
}
}
public boolean isIndenting() {
return indenting;
}
public void setIndenting(boolean indenting) {
this.indenting = indenting;
}
}
修改您的EventWriter
这篇关于来自Spring批处理Jaxb2Marshaller-Marshall.JAXB_FORMACTED_OUTPUT的XML输出不起作用,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!
[英文标题]The XML output from the Spring Batch Jaxb2Marshaller - Marshaller.JAXB_FORMATTED_OUTPUT is not working, why?
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。