jasperreports 5.6.0 和 Hibernate 4 NoSuchFieldError:BOOLEAN

2023-12-21

我正在使用 spring、hibernate 和 jasperreports 构建基于 Maven 的 Web 应用程序。

这是 applicationContext.xml 文件

<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${driverBinder}" />
    <property name="url" value="${urlBinder}" />
    <property name="username" value="${usernameBinder}" />
    <property name="password" value="${passwordBinder}" />
</bean>

<bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="myDataSource"/>

    <property name="annotatedClasses">
        <list>
        ...
        </list>
    </property>

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${dialectBinder}</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

生成报告的Java类

@Controller
public class DefaultGenerator extends AbstractView {

    @Autowired
    @Qualifier("mySessionFactory")
    protected SessionFactory sessionFactory;
    private static Session session;
    private static Transaction transaction;

    private static OutputStream outputStream;
    private static JasperPrint jasperPrint;

    @Override
    protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

        session = sessionFactory.openSession();
        transaction = session.beginTransaction();

        outputStream = response.getOutputStream();
        HashMap parameters = (HashMap) model.get("parameters");

        parameters.put(JRHibernateQueryExecuterFactory.PARAMETER_HIBERNATE_SESSION, session);

        URL reportTemplate = getClass().getClassLoader().getResource("someFile.jrxml");
        JasperReport jasperReport = JasperCompileManager.compileReport(reportTemplate.getPath());
        jasperPrint = JasperFillManager.fillReport(jasperReport, parameters);

        transaction.rollback();
        session.close();

        render(new JRPdfExporter());
    }

    private void render(Exporter exporter) throws JRException {
        List<JasperPrint> jasperPrintList = new ArrayList<>();
        jasperPrintList.add(jasperPrint);
        exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrintList));
        exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
        exporter.exportReport();
    }
}

并没有发生任何事情。我遇到了一个错误 - java.lang.NoSuchFieldError: BOOLEAN。 这里也有描述——http://community.jaspersoft.com/questions/536345/jasperreports-376-and-hibernate-36-errors http://community.jaspersoft.com/questions/536345/jasperreports-376-and-hibernate-36-errors看起来从 Hibernate 3.6 版本开始就不再有 BOOLEAN 类了。但 jasperreports 尝试使用它......

任何人都可以帮助我并告诉我如何尽可能简单地做到这一点吗?我正在使用 Maven,所以我的队友可能会更新一次库,所以我不想重新编译 jasperreports 库等。

Thank.


就像这里写的http://jasperreports.sourceforge.net/sample.reference/hibernate/ http://jasperreports.sourceforge.net/sample.reference/hibernate/

Hibernate 是专门用于数据访问的中间层工具之一(现在:Hibernate 3.3)(...)

...最新的 jasperreports 5.6 是否有可能认为 hibernate 的实际版本是 3.3 而不是 4.3? oO

花了两周时间研究解决方案却一无所获:/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jasperreports 5.6.0 和 Hibernate 4 NoSuchFieldError:BOOLEAN 的相关文章

随机推荐