如何在 Jasper Server 中部署 Jaspersoft Bean Datasource?

How can Jaspersoft Bean Datasource be deployed in Jasper Server?

任何人都可以帮助我逐步完成在 Jaspersoft 服务器中添加 Bean DataSource(bean 集合)的过程吗?是否有直接推送 jar 文件以便服务器可以识别它的简单过程?

这是我执行的步骤(简化名称)

在 Studio 项目中

在资源库资源管理器中

在 Studio 项目中

在 Jaspersoft 服务器中

运行 报告testReport1

得到错误

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.company.test.PersonFactory' is defined at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:575)

org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1111) at

org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1119) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.BeanReportDataSourceServiceFactory.createService(BeanReportDataSourceServiceFactory.java:76) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at ....

任何人都可以帮我做关于如何在 Jaspersoft 服务器中识别 Beans 和 Factory 的最简单的步骤吗?

谢谢

我在最初提出问题一周后解决了这个问题。我只是想分享答案:

应该通过实现 ReportDataSourceService.

的 class 访问 jaspersoft Bean DataSource

那么,它应该有一个私有变量

private JRBeanCollectionDataSource dataSource;

此外,您需要覆盖 2 个方法

@Override
public void closeConnection() {
    // TODO Auto-generated method stub

}

@Override
public void setReportParameterValues(Map parameterMap) {
    parameterMap.put(JRParameter.REPORT_DATA_SOURCE, dataSource);

}

然后从 Jasper 服务器,您需要定义工厂 class,它调用 ReportDataSourceService 的构造函数实现 class 您创建的同时返回一个ReportDataSourceService 类型