Я хочу вывести сгенерированную схему в стандартный вывод. Поэтому я установил System.out как outputStream для SchemaOutputResolver. StreamResult result = new StreamResult(System.out);
Но после заявления: jc.generateSchema(outputResolver)
Как избежать закрытия System.out из обратного вызова
System.out.println() больше не работает. Отлаживая код, я получил, что System.out был закрыт после метода jc.generateSchema
.
JAXBContext jc = JAXBContext.newInstance(SomeObject.class);
SchemaOutputResolver outputResolver = new SchemaOutputResolver() {
@Override
public Result createOutput(String namespaceUri, String suggestedFileName)
throws IOException {
StreamResult result = new StreamResult(System.out);
result.setSystemId(namespaceUri);
// return result
return result;
}
};
jc.generateSchema(outputResolver);
System.out.println("this String can't be output");
Мой вопрос, как вывести сгенерированную схему на стандартный вывод, не закрывая System.out с помощью jc.generateSchema
?
Спасибо, Это то, что я хочу. Я написал несколько подобных классов, но не знаю, как назначить System.out классу wrap. :) Спасибо за хороший код. –