Java org.xml.sax.SAXParseException:使用jaxbUnmarshaller提前结束文件
这是一种对xml文件进行解组的java方法 我找了几个关于这个错误的问题,但找不到答案Java org.xml.sax.SAXParseException:使用jaxbUnmarshaller提前结束文件,java,xml,web-services,soap,xsd,Java,Xml,Web Services,Soap,Xsd,这是一种对xml文件进行解组的java方法 我找了几个关于这个错误的问题,但找不到答案 @WebMethod(operationName = "List_Flights") public List<FlightAvailableOffers> List_Flights() {//ArrayList<String[]> FlightAvailableOffers flighte = new FlightAvailableOffers();
@WebMethod(operationName = "List_Flights")
public List<FlightAvailableOffers> List_Flights() {//ArrayList<String[]>
FlightAvailableOffers flighte = new FlightAvailableOffers();
Flights flight = new Flights();
List<FlightAvailableOffers> bookingAvailFlights = flight.getOffersBooking();
try {
File file = new File("Flight_Bookings.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(FlightAvailableOffers.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
flight = (Flights)jaxbUnmarshaller.unmarshal(file);
//List<FlightAvailableOffers> bookingAvailFlights = flight.getOffersBooking();
FlightAvailableOffers booking = new FlightAvailableOffers();
Iterator itr = bookingAvailFlights.iterator();
while (itr.hasNext()) {
booking = (FlightAvailableOffers) itr.next();
bookingAvailFlights.add(booking);
}
} catch (JAXBException e) {
System.out.println(e.getCause());
}
return bookingAvailFlights;
}
}
@WebMethod(operationName=“List\u航班”)
公共列表\u Flights(){//ArrayList
FlightAvailableOffers flighte=新的FlightAvailableOffers();
航班=新航班();
List bookingAvailFlights=flight.getOffersBooking();
试一试{
File File=新文件(“Flight_Bookings.xml”);
JAXBContext JAXBContext=JAXBContext.newInstance(FlightAvailableOffers.class);
解组器jaxbUnmarshaller=jaxbContext.createUnmarshaller();
flight=(Flights)jaxbunmarshall.unmarshal(文件);
//List bookingAvailFlights=flight.getOffersBooking();
FlightAvailableOffers预订=新的FlightAvailableOffers();
迭代器itr=bookingAvailFlights.Iterator();
while(itr.hasNext()){
预订=(FlightAvailableOffers)itr.next();
预订航班。添加(预订);
}
}捕获(JAXBEException e){
System.out.println(e.getCause());
}
返回预定航班;
}
}
但当我运行此命令时,它会显示以下消息
“org.xml.sax.SAXParseException:文件过早结束
“马歇尔”
有人能帮我解决这个问题吗?flightinfo.xsd中有一个错误。tns:命名空间在文档中声明 记录原因:未声明的前缀:无法将“tns:FlightAvailableOffers”解析为QName:未声明前缀“tns” 提示: 您可以通过在线工具根据xsd验证xml
我推荐下面的一种 您能用一个小的输入文件复制并显示xml输入吗?这是xml文件。这是xsd文件