JAXB unmarshalling Неизвестная проблема - PullRequest
1 голос
/ 09 марта 2012

Я отменяю вызов xml с использованием JAXB, но он внезапно возвращает неправильное значение, он возвращает неверное значение.За день до этого он работал нормально.

Узел: <ListID>166</ListID>

Код Unmarshalling:

public class ResponseParser {
static Object obj;

public static Object parseResponse(String response, Class<?> ctxClass) {
    try {
        ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes());
        JAXBContext jc = JAXBContext.newInstance (ctxClass);
        Unmarshaller  unmarshaller = jc.createUnmarshaller();
        obj =   unmarshaller.unmarshal(input);
    }
    catch (JAXBException e) {

    }
    return obj;
}
}

Возвращается: -90. Но этовозвращаясь последовательно как раньше -90 это было -91

Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Вход 166 находится вне диапазона для byte, который в Java является максимальным значением 127.

package forum9632269;

public class Demo {

    public static void main(String[] args) throws Exception {
        System.out.println(Byte.MAX_VALUE);
    }

}

Выход

127
0 голосов
/ 09 марта 2012

Это очень странно, с чем вы сталкиваетесь, но может быть это как-то связано с файлом xml.Попробуйте заменить звонок

ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes());

на

ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes("UTF8"));

Сообщите нам, если это реальная причина вашей проблемы.

...