Байтовый массив не работает в классах JAXB - PullRequest
4 голосов
/ 02 января 2011

Я пытаюсь использовать байтовый массив, как этот (класс JAXB). Тем не менее, я получаю все 0 в поле сообщения, хотя я передаю допустимые символы. Поля "id" и "myid" анализируются успешно, и это не удается для поля байтового массива.

@XmlRootElement(name = "testMessage")
@XmlAccessorType(XmlAccessType.FIELD)
public class TestMessage
{
    @XmlAttribute
    private Integer id;

    @XmlElement(name = "myid")
    private Long myid;

    @XmlElement(name = "msg")
    private byte[] msg;
}

1 Ответ

4 голосов
/ 03 января 2011

Используя JAXB Java 1.6.0_23, я получаю следующий xml-файл для экземпляра TestMessage:

TestMessage testMessage = new TestMessage();
testMessage.id = 1;
testMessage.myid = 2l;
testMessage.msg = "Test12345678".getBytes();

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testMessage id="1">
    <myid>2</myid>
    <msg>VGVzdDEyMzQ1Njc4</msg>
</testMessage>

Если вы удалите это xml-содержимое, вы должны получить обратно экземпляр TestMessage, включая байтовый массив msg (который кодируется в base64 в xml-файле).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...