Java ClassCastException使用Birt启动ReportEngine

Java ClassCastException使用Birt启动ReportEngine,java,report,birt,business-intelligence,classcastexception,Java,Report,Birt,Business Intelligence,Classcastexception,我正在尝试使用BIRT生成一些pdfReports(不是我的技术选择,我会使用JasperReports)。这是我的密码: protected IReportEngine getEngine() { if (engine == null) { try { config = new EngineConfig(); config.setEngineHome(getReportEngineHome());

我正在尝试使用BIRT生成一些pdfReports(不是我的技术选择,我会使用JasperReports)。这是我的密码:

protected IReportEngine getEngine() {
    if (engine == null) {
        try {

            config = new EngineConfig();
            config.setEngineHome(getReportEngineHome());

            Platform.startup(config);
            IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
            engine = factory.createReportEngine(config);


        } catch (Exception ex) {
            log.error("Can't create report engine " + ex); //$NON-NLS-1$
        }
    }

    return engine;
}
我从BIRT手册中获取了这段代码,因此我希望它能正常工作,但是当转换到(IReportEngineFactory)时,我得到一个classCastException:

Can't create report engine java.lang.ClassCastException: org.eclipse.birt.report.engine.api.impl.ReportEngineFactory cannot be cast to org.eclipse.birt.report.engine.api.IReportEngineFactory ERROR [[FrontController]] Servlet.service() for servlet FrontController threw exception

我甚至不明白为什么ReportEngineFactory.java类甚至不在BIRT发行版中,也不在我能够在web上找到的任何其他发行版中

您能详细介绍一下您使用的BIRT的版本吗?您是从应用程序还是通过Tomcat进行报告?这段代码应该可以工作,但是我不明白您为什么找不到ReportEngineFactory.class?此类位于birt运行时中,它是发行版的主jar。对于birt 4.3.1,它的名称如下:org.eclipse.birt.runtime_4.3.1..jarI解决了将/ReportEngine/lib下的lib直接移动到/Web-INF/lib文件夹的问题。。。虽然我面临着另一个问题,但前一个问题应该这样解决!在Ecliplse IDE配置中将JAR添加到JBOSS的类路径也是不够的。。。一旦webapp部署在JBOSS下,我就在文件夹/server/default/deploy/nameofmywebapp/lib中手动复制了webapp结构中的JAR