最近在学jasperreport,运行了一个例子,在Windows下能跑,但是在Linux下出了问题,不解。jsp文件如下:
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="net.sf.jasperreports.engine.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
String ctxpath = request.getContextPath();// try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://10.1.16.163:3306/esocc_0702?user=root&password=123");
// }catch(ClassNotFoundException e){
// System.out.println("Sorry,can't find the driver");
// e.printStackTrace();
// }catch(SQLException e1){
// System.out.println("Sorry,i don't know");
// e1.printStackTrace();
// }catch(Exception e2){
// System.out.println("It's wrong");
// } File reportFile = new File(this.getServletContext().getRealPath("/test.jasper"));
Map para = new HashMap();
try{
JasperRunManager.runReportToHtmlFile(reportFile.getPath(),para,conn);
response.sendRedirect(ctxpath+"/test.html");
}catch(Exception e){
System.out.println(e.getMessage());
}
%>
错误提示如下:org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 21 in the jsp file: /reportRun.jsp
JasperRunManager cannot be resolved
18: File reportFile = new File(this.getServletContext().getRealPath("/test.jasper"));
19: Map para = new HashMap();
20: try{
21: JasperRunManager.runReportToHtmlFile(reportFile.getPath(),para,conn);
22: response.sendRedirect(ctxpath+"/test.html");
23: }catch(Exception e){
24: System.out.println(e.getMessage());
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
不知道是什么原因,我的jar包是直接把windows下的包(windows下正常运行)复制到Linux下的,不知道问题在哪,是不是少导入了包?导致不能解析JasperRunManager类?求大神指点迷津,谢谢
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="net.sf.jasperreports.engine.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
String ctxpath = request.getContextPath();// try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://10.1.16.163:3306/esocc_0702?user=root&password=123");
// }catch(ClassNotFoundException e){
// System.out.println("Sorry,can't find the driver");
// e.printStackTrace();
// }catch(SQLException e1){
// System.out.println("Sorry,i don't know");
// e1.printStackTrace();
// }catch(Exception e2){
// System.out.println("It's wrong");
// } File reportFile = new File(this.getServletContext().getRealPath("/test.jasper"));
Map para = new HashMap();
try{
JasperRunManager.runReportToHtmlFile(reportFile.getPath(),para,conn);
response.sendRedirect(ctxpath+"/test.html");
}catch(Exception e){
System.out.println(e.getMessage());
}
%>
错误提示如下:org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 21 in the jsp file: /reportRun.jsp
JasperRunManager cannot be resolved
18: File reportFile = new File(this.getServletContext().getRealPath("/test.jasper"));
19: Map para = new HashMap();
20: try{
21: JasperRunManager.runReportToHtmlFile(reportFile.getPath(),para,conn);
22: response.sendRedirect(ctxpath+"/test.html");
23: }catch(Exception e){
24: System.out.println(e.getMessage());
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
不知道是什么原因,我的jar包是直接把windows下的包(windows下正常运行)复制到Linux下的,不知道问题在哪,是不是少导入了包?导致不能解析JasperRunManager类?求大神指点迷津,谢谢
WEB-INF下lib的jar包如下
commons-beanutils-1.8.0.jar
-rw-r--r-- 1 root chasel.tu 175426 Dec 7 14:22 commons-collections-2.1.1.jar
-rw-r--r-- 1 root chasel.tu 196768 Dec 7 14:22 commons-digester-2.1.jar
-rw-r--r-- 1 root chasel.tu 96529 Dec 7 14:22 commons-javaflow-20060411.jar
-rw-r--r-- 1 root chasel.tu 60841 Dec 7 14:22 commons-logging-1.1.1.jar
-rw-r--r-- 1 root chasel.tu 6191960 Dec 7 14:22 groovy-all-2.0.1.jar
-rw-r--r-- 1 root chasel.tu 1130070 Dec 7 14:22 iText-2.1.7.jar
-rw-r--r-- 1 root chasel.tu 1130550 Dec 7 14:22 iText-2.1.7.js1.jar
-rw-r--r-- 1 root chasel.tu 331811 Dec 7 14:22 iTextAsian.jar
-rw-r--r-- 1 root chasel.tu 4214416 Dec 7 14:22 jasperreports-4.8.0.jar
-rw-r--r-- 1 root chasel.tu 496800 Dec 7 14:22 jasperreports-applet-4.8.0.jar
-rw-r--r-- 1 root chasel.tu 2478087 Dec 7 14:22 jasperreports-fonts-4.8.0.jar
-rw-r--r-- 1 root chasel.tu 4258472 Dec 7 14:22 jasperreports-javaflow-4.8.0.jar
-rw-r--r-- 1 root chasel.tu 309294 Dec 7 14:22 jcommon-1.0.15.jar
-rw-r--r-- 1 root chasel.tu 1368681 Dec 7 14:22 jfreechart-1.0.12.jar
-rw-r--r-- 1 root chasel.tu 709922 Dec 7 14:22 mysql-connector-java-5.1.7-bin.jar
-rw-r--r-- 1 root chasel.tu 8020649 Dec 7 14:22 STZhongsong.jar //这个是字体,我自己弄的
多谢
把jasper文件和jsp文件放在tomcat的web根目录下,访问时报错如下 :
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 21 in the jsp file: /reportRun.jsp
JasperRunManager cannot be resolved
18: Map parameters = new HashMap();
19: try {
20: //执行报表程序
21: JasperRunManager.runReportToHtmlFile(reportFile.getPath(),
22: parameters, conn);
23: response.sendRedirect(ctxpath+"/myreport.html"); //此处的myreport是
24: 报表的名称
An error occurred at line: 24 in the jsp file: /reportRun.jsp
Syntax error, insert "AssignmentOperator Expression" to complete Assignment
21: JasperRunManager.runReportToHtmlFile(reportFile.getPath(),
22: parameters, conn);
23: response.sendRedirect(ctxpath+"/myreport.html"); //此处的myreport是
24: 报表的名称
25: }
26: catch (Exception e) {
27: System.out.println( e.getMessage() );
An error occurred at line: 24 in the jsp file: /reportRun.jsp
Syntax error, insert ";" to complete Statement
21: JasperRunManager.runReportToHtmlFile(reportFile.getPath(),
22: parameters, conn);
23: response.sendRedirect(ctxpath+"/myreport.html"); //此处的myreport是
24: 报表的名称
25: }
26: catch (Exception e) {
27: System.out.println( e.getMessage() );
An error occurred at line: 24 in the jsp file: /reportRun.jsp
报表的名称 cannot be resolved
21: JasperRunManager.runReportToHtmlFile(reportFile.getPath(),
22: parameters, conn);
23: response.sendRedirect(ctxpath+"/myreport.html"); //此处的myreport是
24: 报表的名称
25: }
26: catch (Exception e) {
27: System.out.println( e.getMessage() );
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.26