Java JAXB解组未知问题

Java JAXB解组未知问题,java,xml-serialization,jaxb,Java,Xml Serialization,Jaxb,我使用JAXB解压xml,但它突然返回了错误的值,返回了错误的值。前一天,它运转良好 节点: 166 解组代码为: public class ResponseParser { static Object obj; public static Object parseResponse(String response, Class<?> ctxClass) { try { ByteArrayInputStream input = new ByteArrayInp

我使用JAXB解压xml,但它突然返回了错误的值,返回了错误的值。前一天,它运转良好

节点:
166

解组代码为:

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;
}
}
公共类响应器{
静态对象对象;
公共静态对象parseResponse(字符串响应,类ctxClass){
试一试{
ByteArrayInputStream输入=新建ByteArrayInputStream(response.getBytes());
JAXBContext jc=JAXBContext.newInstance(ctxClass);
Unmarshaller Unmarshaller=jc.createUnmarshaller();
obj=解组器。解组器(输入);
}
捕获(JAXBEException e){
}
返回obj;
}
}
它正在返回:
-90
。但是它正在按顺序返回,就像以前的
-90
一样,它是
-91


请帮忙

您所面临的情况非常奇怪,但是可能与xml文件编码有关。试着换电话

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


让我们知道这是否是您问题的真正原因。

您所面临的情况非常奇怪,但是可能与xml文件编码有关。试着换电话

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


让我们知道这是否是问题的真正原因。

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

package forum9632269;

public class Demo {

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

}
输出

127

输入的
166
超出了
byte
的范围,在Java中,字节的最大值为
127

package forum9632269;

public class Demo {

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

}
输出

127

您是否通过调试器运行了代码,并确保传递到解组器的是什么?因此
response
是“166”,当您使用JAXB解组时,您得到了-90(或任何其他序列号)?什么类型的obj是
obj
?也许你可以尝试使用一个具体的类而不是通用的通配符?是的,回答是“166”。obj是对象类型。它是工作文件,应用程序已经准备好了,但我不知道突然发生了什么。@TusharAgarwal-我不知道输入值
166
与输出有什么关系。你为什么期望
-90
?@BlaiseDoughan我没有期望
-90
我需要节点
中的值
116
,但它返回的是
-90
。你是否通过调试器运行了你的代码,并确保准确地传递到解组器中的是什么?因此
响应
是“166”当您使用JAXB解组时,会得到-90(或任何其他序列号)?什么类型的obj是
obj
?也许你可以尝试使用一个具体的类而不是通用的通配符?是的,回答是“166”。obj是对象类型。它是工作文件,应用程序已经准备好了,但我不知道突然发生了什么。@TusharAgarwal-我不知道输入值
166
与输出有什么关系。你为什么期待
-90
?@BlaiseDoughan我不期待
-90
我需要节点
中的值
116
,但它会返回
-90
。@TusharAgarwal-我已经根据你添加到问题中的评论更新了我的答案。问题是值
166
超出了
字节
数据类型的范围。@TusharAgarwal-我已根据您添加到问题中的注释更新了我的答案。问题是值
166
超出了
字节
数据类型的范围。