2014-11-26 2 views
2

Я использую следующий класс:JAXB Java Runtime Ошибка с Getter, но не сеттер

package com.mycom.ecnviewerview.viewer; 

import java.util.ArrayList; 
import java.util.List; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Report { 

private String srunDate = null; 
private String sUserID = null; 
private List<Result> results = new ArrayList<Result>(); 

@XmlElement 
public String getRunDate() 
{ 
    return this.srunDate; 
} 

public void setRunDate(String pRunDate) 
{ 
    this.srunDate = pRunDate; 
} 

@XmlElement 
public String getUser() 
{ 
    return this.sUserID; 
} 

public void SetUser(String pUser) 
{ 
    this.sUserID = pUser; 
} 

@XmlElement 
public List<Result> getResults() 
{ 
    return results; 
} 

public void SetResults(List<Result> pResults) 
{ 
    results = pResults; 
} 

}

И когда я звоню следующий код:

JAXBContext jaxbContext = JAXBContext.newInstance(Report.class); 
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 

jaxbUnmarshaller.setEventHandler(new ValidationEventHandler() { 
public boolean handleEvent(ValidationEvent event) { 
throw new RuntimeException(event.getMessage(), 
event.getLinkedException()); 
} 
});  

Report report = (Report) jaxbUnmarshaller.unmarshal(new FileReader("C:\\Temp\\File.xml")); 

txtRunBy.setText(report.getUser()); 
txtRunDate.setText(report.getRunDate()); 
results = report.getResults(); 

Ошибка :

Err = java.lang.RuntimeException: свойство имеет getter "public java.lang.String com.mycom.ecnviewervie w.viewer.Report.getUser() ", но нет настройки. Для разборки, пожалуйста, определите сеттеры. (Или, если это свойство коллекции, убедитесь, что геттер возвращает экземпляр коллекции.)

Я смущен, потому что считаю, что у меня есть геттер и сеттер.

Любые идеи?

Спасибо, Кевин

ответ

2

В Java, по соглашению методы начинаются с меньшим именем случая. Измените сеттер из

public void SetUser(String pUser) 
{ 
    this.sUserID = pUser; 
} 

в

public void setUser(String pUser) 
{ 
    this.sUserID = pUser; 
} 

и другие.

+0

Elliott, спасибо за подсказку, я просто подумал и пришел, чтобы опубликовать этот ответ! – kevin

Смежные вопросы