2016-11-18 6 views
1

こんにちは、私はに初めてです.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にとって全く新しいです!誰かがエラーを理解するのを助けてくれますか?

+0

どのエラーが表示されますか?それは疑問ではありません... – Matthias

答えて

2

ラクダのスタイルを使用して、次のゲッターを変更する必要があります。 CとAの大文字小文字の区別。

@XmlElement(name = "columnTypeCheckRequired") 
    public String getColumnTypeCheckRequired() { 
    return columnTypeCheckRequired; 
    } 

    @XmlElement(name = "additionalColumns") 
    public String getAdditionalColumns() { 
    return additionalColumns; 
    } 
+1

それは正常に動作しました。私がこれを初めて知ったので、なぜ私が間違っていたのか、そしてjaxbがこれをどのように実装しているのかを正確に説明してもらえますか? – Ayon

+1

@Ayon問題は簡単ですが、JAXBは各フィールドにキャメルケース表記が必要であるため、一致するものは見つかりません。 – Xstian

+0

@Ayonあなたは解決しましたか? – Xstian

関連する問題