编译报告时出错:java.lang.NoClassDefFoundError:javax/servlet/ServletOutputStream
我在编译报告时出错。错误为:编译报告时出错:java.lang.NoClassDefFoundError:javax/servlet/ServletOutputStream,java,jasper-reports,noclassdeffounderror,Java,Jasper Reports,Noclassdeffounderror,我在编译报告时出错。错误为: Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream 代码如下: Map parameter = new HashMap(); parameter.put("customerId", notification_table.getValueAt(r, 0).toString()); ReportV sd = ne
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
代码如下:
Map parameter = new HashMap();
parameter.put("customerId", notification_table.getValueAt(r, 0).toString());
ReportV sd = new ReportV();
sd.showReport(parameter);
这是我使用的类:
import java.sql.*;
import java.util.Map;
import javax.swing.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.swing.JRViewer;
public class ReportV {
Connection conn = null;
void showReport(Map parameters) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:pcn");
JasperReport report = JasperCompileManager.compileReport("recipt.jrxml");
JasperPrint print = JasperFillManager.fillReport(report, parameters, conn);
JRViewer viewer = new JRViewer(print);
viewer.setOpaque(true);
viewer.setVisible(true);
//make your JFrame visible
this.add(viewer);
this.setSize(300, 200);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
} catch (Exception ex) {
System.out.println("CAUSE: " + ex.getCause());
System.out.println("MESSAGE" + ex.getMessage());
System.out.println("LOCAL MESSAGE" + ex.getLocalizedMessage());
ex.printStackTrace();
}
}
}
您尚未导入
ServletOutputStream
类
import javax.servlet.ServletOutputStream;
我相信这是Java EE的一部分,因此除了标准Java jdk之外,您还需要在类路径中使用该库。不可编译源代码-包javax.servlet不存在,因为它不包含在标准jdk中。servlet的东西需要JavaEE。我已经下载了这个库,但问题并没有解决。您使用Maven吗?您可能希望从maven central获取以下包。GroupId:javax.servlet ArtifactId:ServletAPI版本:2.5类型:jar范围:compileNetBeans是一个IDE。Maven是一个构建管理工具。我猜您正在使用Ant作为构建管理工具。无论如何,正如其他人提到的那样。您将需要使用J2EE库来获取ServletOutputStream类。