こんにちは、私はに初めてです.Jaxbと、xml
のファイルをjaxbでアンマーシャリングしようとしています。私はxmpproporder
フィールドとname
フィールドを正しく追加しました。null値を返すJaxbアンマーシャリング
しかし、私のXMLフィールドのうち2つはヌルとして設定されていますが、他のフィールドは完全に設定されています。
私のxmlファイルがある: -
<tables>
<table id="1">
<name>test1</name>
<schema>validator_test</schema>
<rowCountToValidate>7</rowCountToValidate>
<columnTypeCheckRequired>FALSE</columnTypeCheckRequired>
<additionalColumns>column1,column2</additionalColumns>
<targetName>target1</targetName>>
</table>
<table id="2">
<schema>validator_test</schema>
<name>validate_external1</name>
<rowCountToValidate>1</rowCountToValidate>
<columnTypeCheckRequired>FALSE</columnTypeCheckRequired>
<additionalColumns>column1,column2</additionalColumns>
</table>
</tables>
要素をアンマーシャリングするために私のコードは次のとおりです。
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@XmlRootElement(name = "table")
@XmlType(propOrder = { "name", "schema","rowCountToValidate","columnTypeCheckRequired","additionalColumns","targetName"})
@Service
public class TableInfo {
private static final boolean TRUE = true;
@Value("${default.row.count.to.validate}")
private Integer defaultRowCountToValidate;
/**
*
*/
public TableInfo() {
}
private String name;
private String schema;
private Integer rowCountToValidate;
private String targetName;
private String columnTypeCheckRequired;
private String additionalColumns;
@XmlElement(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "schema")
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
@XmlElement(name = "rowCountToValidate")
public Integer getRowCountToValidate() {
return rowCountToValidate;
}
@XmlElement(name = "columnTypeCheckRequired")
public String getcolumnTypeCheckRequired(){
return columnTypeCheckRequired;
}
@XmlElement(name = "additionalColumns")
public String getadditionalColumns(){
return additionalColumns;
}
public void setRowCountToValidate(Integer rowCountToValidate) {
// If user configured value is not null and greater than zero then set
// the value otherwise use default value
if ((null != rowCountToValidate) && (rowCountToValidate.intValue() > 0)) {
this.rowCountToValidate = rowCountToValidate;
}else {
this.rowCountToValidate = defaultRowCountToValidate;
}
}
@XmlElement(name = "targetName")
public String getTargetName() {
return targetName;
}
public void setTargetName(String targetName) {
this.targetName = targetName;
}
public void setColumnTypeCheckRequired(String columnTypeCheckRequired) {
this.columnTypeCheckRequired = columnTypeCheckRequired;
}
public void setAdditionalColumns(String additionalColumns) {
this.additionalColumns = additionalColumns;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}}
私はcolumnTypeCheckRequiredとadditionalColumnsでnull値を取得しています。ただし、他のフィールドには正しく入力されています。私が設定する必要がある他のフィールドや設定がありますか?
私はJaxbにとって全く新しいです!誰かがエラーを理解するのを助けてくれますか?
どのエラーが表示されますか?それは疑問ではありません... – Matthias