JAXB APIを使用して、JavaモデルBeanクラスの下にXMLデータをバインドしようとしています。しかし、私はそれを縛ることができません。誰でもJAXBを使って提案やコーディングをしてください。 私は自分のbeanクラスを提供し、xmlを入力しました。JAXB Java継承されたBeanオブジェクトとのバインド
Message.java
@XmlRootElement(name="Message")
class Message{
private Header header = null;
private Body body = null;
@XmlElement(name="Header")
public Header getHeader() {
return header;
}
public void setHeader(Header header) {
this.header = header;
}
@XmlElement(name="Body")
public Body getBody() {
return body;
}
public void setBody(Body body) {
this.body = body;
}
}
Header.Java
@XmlSeeAlso({ReqHeader.class})
class Header{
}
ReqHeader.java
@XmlRootElement(name="Header")
class ReqHeader extends Header{
private String msgID = null;
private String msgDesc = null;
public String getMsgID() {
return msgID;
}
public void setMsgID(String msgID) {
this.msgID = msgID;
}
public String getMsgDesc() {
return msgDesc;
}
public void setMsgDesc(String msgDesc) {
this.msgDesc = msgDesc;
}
}
Body.java
class Body{
}
RequestBody.java
class RequestBody extends Body{
private CustInfo custInfo = null;
public CustInfo getCustrInfo() {
return custInfo;
}
public void setCustrInfo(CustInfo custInfo) {
this.custInfo = custInfo;
}
}
CustInfo.java
class CustInfo{
private String custID = null;
public String getCustID() {
return custID;
}
public void setCustID(String custID) {
this.custID = custID;
}
}
MessageUnmarshallの.java
public class MessageUnmarshall {
public static void main(String a[]) throws JAXBException{
String str = "<Message> <Header> <MsgID>123</MsgID> <MsgDesc>cust products</MsgDesc> </Header> <Body> <CustInfo> <CustID>111</CustID> </CustInfo> </Body> </Message>";
JAXBContext context = JAXBContext.newInstance(Message.class);
Unmarshaller un = context.createUnmarshaller();
Message msg = (Message) un.unmarshal(new StringReader(str));
}
}
...それに応じて体のクラスを変更し、「しかし、私はそれをバインドすることができません」 - その平均値を何?エラーメッセージが表示されますか?正確なエラーメッセージは何ですか? – Jesper
ヘッダーがReqHeaderとバインドされていません。私はキャストできないことを意味します。 スレッド "main"の例外java.lang.ClassCastException:com.conversion.Headerはcom.conversion.ReqHeaderにキャストできません –
@Jesper私はこれにどのように対処するのか分かりません。この問題を解決するのを手伝ってください。 –