2013-06-28 40 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

這些字符會是什麼樣子? –