Я пытаюсь прочитать XML-файл, используя класс Jaxb2Marshaller. Насколько я понимаю, это должно выдать ошибку, потому что я передаю XML, который не соответствует ожидаемому формату, но не создает никаких исключений.
Я хочу перехватить исключение и выполнить дальнейшие шаги/логику на основе полученного исключения.
Может ли кто-нибудь объяснить, почему метод unmarshaller класса Jaxb2Marshaller не выдает никаких исключений, даже если я не передаю ожидаемый XML-файл (XML-файл, который не содержит никакой информации о сотрудниках. Sample. xml — это совершенно другой файл структуры XML, который не встроен в класс Emmployee.java) для метода демаршалла?
//this the method which reading XML file.
@Bean
@StepScope
public StaxEventItemReader reader() {
StaxEventItemReader result = null;
Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller();
unmarshaller.setClassesToBeBound(Employee.class);
result = new StaxEventItemReaderBuilder()
.name("employeeReader")
//Sample.xml contains different structure not like Employee
.resource(new ClassPathResource("sample.xml"))
//employee.xml file is working fine
//.resource(new ClassPathResource("employee.xml"))
.addFragmentRootElements("employee")
.unmarshaller(unmarshaller)
.build();
int i =0 ;
return result;
}
///Employee.java Class
@XmlRootElement(name = "employee")
public class Employee {
private int id;
private String name;
private String department;
public Employee() {
}
public Employee(int id, String name, String department) {
this.id = id;
this.name = name;
this.department = department;
}
@XmlElement(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "department")
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", department=" + department + "]";
}
}
//sample.xml file
SAMPLE
SAMPLE2
SAMPLE3
HAPPY WEEKEND
//employee.xml File
1
John Franklin
Sales
2
Thomas Smith
HR
3
Adams Jefferson
Accounts
Подробнее здесь: https://stackoverflow.com/questions/790 ... ml-file-is