SAXReader返回文件的过早结束

时间:2013-06-28 05:25:23

标签: java web-services

我有这个代码,它接受来自URL的XML文件,该文件通过HttpServletRequest请求传递。我检查了请求和inStream的值,它们不是null / empty。但是我得到一个错误“文件的第-1行错误:文件过早结束。嵌套异常:文件过早结束。” 请求和inStream值显示为 org.apache.catalina.connector.RequestFacade@34a7fc0 org.apache.catalina.connector.CoyoteInputStream@100917f0 分别。 以下是代码

private void processRequest(HttpServletRequest request,
                HttpServletResponse response, VariablesSecureApp vars) {
    // TODO Auto-generated method stub
    try {
        System.out.println(request);
        InputStream inStream = request.getInputStream();
        System.out.println(inStream);
        SAXReader sax = new SAXReader();
        Document doc = sax.read(inStream);
        System.out.println(doc);
        Element rootElement = (Element) doc.getRootElement();
        if (!rootElement.getName().equals("ob")){
            throw new  OBException("The root element of the xml document should be: Ob but it is " + rootElement.getName());
        }
        //createSalesOrder(doc,response,request);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

这可能是因为您正在阅读的XML文件格式不正确。

这可能意味着缺少结束标记,或者甚至在找不到文件结束符时。