0
私はアンマーシャラーに問題があります。私は次のようなファイルを持っています:jaxb unMarshallerの失敗ClassCastException 2つのxml要素が同じ名前であるためです。どうして?
<Employee xmlns="namespace here">
<Employee>
<Id>2</Id>
<Name>idk</Name>
</Employee>
</Employee>
問題はルート要素であり、要素のリストは "Employee"と同じ名前です。非マーシャルに行くと、クラスキャスト例外が発生します。
@XmlRootElement(name="Employee")
public class EmployeeInformation {
List<EmployeeInformationElement> elements;
private String errorCode;
private String errorMessage;
public List<EmployeeInformationElement> getElements() {
return elements;
}
@XmlElement(name="Employee")
public void setElements(List<EmployeeInformationElement> elements) {
this.elements = elements;
}
public String getErrorCode() {
return errorCode;
}
@XmlElement(name="ErrorCode")
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMessage() {
return errorMessage;
}
@XmlElement(name="ErrorMessage")
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
このコードを使用して、非整列化する必要があるファイルとまったく同じファイルをマーシャリングすることができます。だから私は混乱している。
再現することができませんjava.lang.ClassCastException: XXXX.EmployeeInformationElement cannot be cast to XXXX.EmployeeInformation
返信いただきありがとうございます。私はEmployee Elementクラスを投稿するのを忘れてしまったようです。私はコードを、私が持っていた問題に単純化し、私が働いている完全なシステムで人を失わないようにしようとしていました。これにより、私が必要としなかったEmployeeInformationElementにルート要素を追加したことがわかりました。お手伝いありがとう。問題が解決し、移動しています。ありがとう! – Koder29