2013-06-28 41 views
0

我有这个代码,它从通过HttpServletRequest请求传递的URL获取XML文件。我检查了请求和inStream的值不为空/空。但是我得到一个错误“文档行-1错误:文件过早结束。嵌套异常:文件过早结束。” 请求和inStream值分别显示为 [email protected] [email protected] 。 以下是代码SAXReader返回文件的提前结尾

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(); 
    } 
} 
+0

'System.out.println(inStream);'?!? –

+0

只是为了检查inStream的值。是否为空。 – sanjeeda

回答

0

可能出现这种情况,因为你正在阅读的XML文件格式不正确。

这可能意味着缺少结束标记,或者甚至没有找到文件字符的结尾。

+0

这些字符会是什么样子? –