错误java.lang.NoSuchMethodError:org.jfree.text.TextBlock.setLineAlignment(Lorg/jfree/ui/HorizontalAlignment;)

错误java.lang.NoSuchMethodError:org.jfree.text.TextBlock.setLineAlignment(Lorg/jfree/ui/HorizontalAlignment;),java,pdf,charts,itext,jfreechart,Java,Pdf,Charts,Itext,Jfreechart,我在从mysql表获取数据中编写代码,并为该值创建图表,然后将该图表插入pdf并存储。但我犯了个错误。获取sql数据并创建pdf,但未打开,java给出错误。 我使用jfreechart-1.0.18、itextpdf-5.5.2和jcommonjar文件。我的java代码是 public static void main(String args[]) throws SQLException { System.out.println("Enter No"); Scanner sc

我在从mysql表获取数据中编写代码,并为该值创建图表,然后将该图表插入pdf并存储。但我犯了个错误。获取sql数据并创建pdf,但未打开,java给出错误。 我使用jfreechart-1.0.18、itextpdf-5.5.2和jcommonjar文件。我的java代码是

public static void main(String args[]) throws SQLException {
    System.out.println("Enter No");
    Scanner sc = new Scanner(System.in);
    String no = sc.next();
    writeChartToPDF(createChart(no), 550, 400, "test.pdf");
}

public static JFreeChart createChart(String no) throws SQLException {
    DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
    master ms = new master();
    String c1 = null, c2 = null, c3 = null, c4 = null;
    ms.conn();
    ResultSet rs;
    PreparedStatement ps;
    ps = ms.con.prepareStatement("SELECT c1,c2,c3,c4 FROM chart where id=?");
    ps.setString(1, no);
    rs = ps.executeQuery();
    if (rs.next()) {
        c1 = rs.getString(1);
        c2 = rs.getString(2);
        c3 = rs.getString(3);
        c4 = rs.getString(4);
    }
    System.out.println(c1 + c2 + c3 + c4);
    dataSet.setValue(Integer.parseInt(c1), "test", "Test");
    dataSet.setValue(Integer.parseInt(c2), "test", "Test");
    dataSet.setValue(Integer.parseInt(c3), "test", "Test");
    dataSet.setValue(Integer.parseInt(c4), "test", "Test");

    dataSet.setValue(Integer.parseInt(c1), "test1", "Test");
    dataSet.setValue(Integer.parseInt(c2), "test1", "Test");
    dataSet.setValue(Integer.parseInt(c3), "test1", "Test");
    dataSet.setValue(Integer.parseInt(c4), "test1", "Test");
   JFreeChart chart = ChartFactory.createBarChart(
            "Test", "Test", "Test",
            dataSet, PlotOrientation.VERTICAL, true, true, false);
    CategoryPlot plot = chart.getCategoryPlot();
    BarRenderer barRenderer = (BarRenderer) plot.getRenderer();
    barRenderer.setSeriesPaint(0, Color.RED);
    return chart;

}
public static void writeChartToPDF(JFreeChart chart, int width, int height, String fileName) {
    PdfWriter writer = null;

    Document document = new Document();

    try {
        writer = PdfWriter.getInstance(document, new FileOutputStream(
                fileName));
        document.open();

        document.addCreator("Test");
        document.addSubject("Data Report");
        document.addCreationDate();
        document.addTitle("Please Read it");

        PdfContentByte contentByte = writer.getDirectContent();

        PdfTemplate template = contentByte.createTemplate(width, height);
        Graphics2D graphics2d = template.createGraphics(width, height,
                new DefaultFontMapper());
        Rectangle2D rect = new Rectangle2D.Double(0, 0, width,
                height);
        chart.draw(graphics2d, rect);

        graphics2d.dispose();

        contentByte.addTemplate(template, 0, 0);
    } catch (Exception e) {
        e.printStackTrace();
    }
    document.close();
}

}

您使用的JCommon版本是什么?看起来您的版本太旧。NoSuchMethod错误通常表示您使用的依赖项版本不兼容。如果没有具有不同版本的相同库,请检查clashpath,然后尝试删除一个库,然后重试,然后在部署应用程序时更正配置,只保留好的配置。谢谢,我更改了Jcommon并立即重新启动了服务器。可能存在重复的