Я читал о JAXB, и я новичок в этом. Я хочу следующий XML из моих классовjaxb аннотация для следующего xml
<response>
<command></command>
<message></message>
</response>
Вот мои классы
Абстрактный класс Родитель - Ответ
@XmlRootElement
abstract class Response {
String command;
public Response() {
// TODO Auto-generated constructor stub
}
public Response(String command) {
this.command = command;
}
@XmlElement
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
}
Детский класс: MessageResposne
@XmlRootElement
class MessageResponse extends Response {
String message;
public MessageResponse() {
// TODO Auto-generated constructor stub
}
public MessageResponse(String command, String message) {
super(command);
this.message = message;
}
@XmlElement
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
и в основном классе
try {
objContext = JAXBContext.newInstance(Response.class);
objMarshaller = objContext.createMarshaller();
} catch (JAXBException e) {
e.printStackTrace();
}
, но это производит
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><response><command>setname</command></response>
Что манипуляция я должен сделать для желаемого resposne
Показана ошибка: [Fatal Error]: 1: 56: преждевременный конец файла. java.lang.NullPointerException –
Я добавил @XmlRootElement в MessageResponse класс, и это производит SetName мое сообщение messageResponse> –
Это выглядит хорошо. Последний недостающий элемент - это атрибут 'name' для XmlRootElement. Я отредактировал ответ. –