Foren: Hilfe (Thread #11147)

「単純表」のExcel出力でエラー (2006-05-19 18:56 by namuba #22037)

ReportDesignerもしくはViewerでROLAPレポートの「単純表」を表示した場合、
表の上のところにExcelのアイコンが表示されるのですが、
これを押すと下記のようなエラーが画面に表示されます。

org.apache.jasper.JasperException: Exception in JSP: /flow/jsp/Rreport/dispCsv.jsp:13

10: // XMLConverter xmlCon = new XMLConverter();
11:
12: String strPath=application.getRealPath(request.getServletPath());
13: strPath = strPath.substring(0,strPath.lastIndexOf("/"));
14:
15: // String csvStr=xmlCon.transformDocument(strPath+"/xml/table/simpleCsv.xsl",xmlCon.toXMLDocument(csvData));
16:


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


原因

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
java.lang.String.substring(Unknown Source)
org.apache.jsp.flow.jsp.Rreport.dispCsv_jsp._jspService(org.apache.jsp.flow.jsp.Rreport.dispCsv_jsp:57)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


注意 原因のすべてのスタックトレースは、Apache Tomcat/5.5.15のログに記録されています

OpenOLAPのバージョンはV2.1.0です。

回避方法等をご存知の方いらっしゃいましたらよろしくお願いします。



RE: 「単純表」のExcel出力でエラー 【自己解決】 (2006-05-24 15:01 by namuba #22300)

原因はOSにWindowsを使っていたからでした。
flow/jsp/Rreport/dispCsv.jspのファイルパスを生成している部分で、ディレクトリの区切り文字を"/"としているところを
System.getProperty("file.separator")で与えてあげると解決しました。

お騒がせして申し訳ございませんでした。

ちなみに、ROLAPレポートの場合はExcel出力ではなくCSV出力になってしまうのは仕様なんでしょうか?
Excelで出力されることを期待していたもんで。。。
Reply to #22037