JAXB unmarshalling未知问题

时间:2012-03-09 10:11:30

标签: java xml-serialization jaxb

我正在使用JAXB解组xml,但它返回错误的值突然它返回了错误的值。前一天工作正常。

节点: <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 个答案:

答案 0 :(得分:1)

输入166超出了byte的范围,它是Java中127的最大值。

package forum9632269;

public class Demo {

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

}

输出

127

答案 1 :(得分:0)

你所面对的是非常奇怪的,但是可能它与xml文件包含有关。尝试替换呼叫

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

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

告诉我们这是否是您遇到问题的真正原因。