gpt4 book ai didi

java - org.opendatafoundation.data.spss.SPSSFileException : Error reading data: unexpected compression code for string variable

转载 作者:行者123 更新时间:2023-11-30 11:34:25 24 4
gpt4 key购买 nike

我有一个读取和写入数据的 servlet。这是我的代码片段

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
SPSSFile file = null;
try {
File f = new File(getServerDiretory() + "dabadeba_2011.01.03.sav");

if (!f.exists()) {
System.out.println("not found");
return;
}
file = new SPSSFile(f);

file.loadMetadata();
file.loadData();

if (file == null) {
System.err.println("vai");
return;
}

Document doc = file.getDDI2();

//set up a transformer
TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "yes");

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
String xmlString = sw.toString();

writeToFile(xmlString);

out.println(xmlString);

} catch (TransformerException ex) {
Logger.getLogger(SPSSReaderServlet.class.getName()).log(Level.SEVERE, null, ex);
} catch (FileNotFoundException ex) {
Logger.getLogger(SPSSReaderServlet.class.getName()).log(Level.SEVERE, null, ex);
} catch (SPSSFileException ex) {
Logger.getLogger(SPSSReaderServlet.class.getName()).log(Level.SEVERE, null, ex);
} finally {
out.close();
if (file != null) {
file.close();
System.out.println("done, file closed");
}
}
}

一切似乎都正常,直到我刷新 JSP 并再次调用该 servlet。这是刷新页面后出现的错误:

SEVERE: org.opendatafoundation.data.spss.SPSSFileException: Error reading data: unexpected compression code for string variable
at org.opendatafoundation.data.spss.SPSSDataRecord.read(SPSSDataRecord.java:161)
at org.opendatafoundation.data.spss.SPSSDataRecord.read(SPSSDataRecord.java:54)
at org.opendatafoundation.data.spss.SPSSFile.loadData(SPSSFile.java:1277)
at ge.geostat.metadata.web.servlet.SPSSReaderServlet.processRequest(SPSSReaderServl‌​et.java:63)
at ge.geostat.metadata.web.servlet.SPSSReaderServlet.doGet(SPSSReaderServlet.java:1‌​40)

当我重新部署应用程序并运行它时,它工作正常。我想这是一个内存问题,非常感谢任何帮助

最佳答案

因为你在刷新页面的时候会得到异常,所以会因为忘记关闭文件而发生。我确信问题是这样的。因为第一次构建项目时它可以工作,之后就不能工作了。您应该在finally block 中调用文件的close 方法。

关于java - org.opendatafoundation.data.spss.SPSSFileException : Error reading data: unexpected compression code for string variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15671713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com