2011-01-02 2 views
4

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

 
@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; 
} 
+2

Что такое тип данных схемы XML элемента msg (Вероятно, он должен быть двоичным или шестнадцатеричным? – jabbie

ответ

4

Использование 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 включая массив байт тзда (который кодируется base64 в XML-файле).

Смежные вопросы