Я пытаюсь использовать библиотеку Jsch для переноса локально созданного файла XML (собранного из объекта Java с использованием JAXB) на удаленный сервер. Однако файл загружается только частично. Отсутствует конечный тег и произвольное количество символов в конце.
Мой код выглядит следующим образом (TradeLimits - это аннотированный класс JAXB Java класс)
TradeLimits limits = getTradeLimits(); //complex object with many fields
JSch jsch = new JSch();
jschSession = jsch.getSession(username, remoteHost);
//to avoid unknown host issues
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
jschSession.setConfig(config);
jschSession.setPassword(password);
jschSession.setPort(22);
jschSession.connect();
ChannelSftp channelSftp = (ChannelSftp) jschSession.openChannel("sftp");
channelSftp.connect();
jaxbContext = JAXBContext.newInstance(TradeLimits.class);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); //for pretty print
marshaller.marshal(limits, channelSftp.put(limitUploadPathString)); //this uploads only partial xml file to sftp server
marshaller.marshal(limits, System.err)); //THIS WORKS CORRECTLY AND THE FULL XML IS PRINTED!
channelSftp.disconnect();
channelSftp.exit();
Обратите внимание, что это не может быть проблемой JAXB, поскольку в другом месте будет напечатан полный XML, но только частичное загружается на удаленный сервер. В чем может быть проблема? Заранее спасибо!