Проблема вызвана тем, как вы используете InputStream is
.
String theString = IOUtils.toString(is, "UTF-8");
log.debug("---------xml"+theString);
Object value = u.unmarshal(is);
Сначала вы потребляете весь InputStream, читая его с IOUtils.toString(is, "UTF-8")
.Конечно, после этого вы находитесь в конце потока.Затем вы пытаетесь продолжить чтение из этого потока по u.unmarshal(is)
.Не удивительно, что теперь вы получаете исключение с Premature end of file
.
Чтобы исправить это, не разбирайте с InputStream is
.но не маршал от String theString
:
String theString = IOUtils.toString(is, "UTF-8");
log.debug("---------xml"+theString);
Object value = u.unmarshal(new StringReader(theString));