我使用的是JasperReports NetBeans插件。
我想提供我的数据作为一个集合的bean。
我做了两件事:
1)实现了一个非常简单的工厂类,返回集合
public class MyFactory {
public static Collection<Person> createBeanCollection() {
ArrayList al = new ArrayList();
for (int i=0; i<10; i++) {al.add(new Person());}
return al;
}
}
2)设置JasperReports IDE(在netbeans下的iReports)来使用它:
点击报表数据源图标,出现"连接/数据源对话框"
单击new,选择JavaBean set datasource:出现对话框。
在name属性中写入任何名称,MyFactory作为Factory类,createBeanCollection作为静态方法。
但是当你尝试与按钮连接时,它给出:
"一般问题:
我厂"
-写一个不存在的类名MyFactoryyyy ->ClassNotFound exception
所以类的位置
-写一个不存在的静态方法名称createBeanCollectionnnnn ->一般问题因此,由于错误是相同的,问题可能是定位方法。
任何想法?
添加
如果我使用JasperReports提供的默认Sample类作为类工厂,它似乎可以工作(连接成功)。com.jaspersoft.ireport.examples.SampleJRDataSourceFactory现在我正在搜索这个类的源代码。
添加一旦重新启动IDE,问题就消失了。可能是缓存问题。我不会关闭这个问题,相反,我将尝试重现问题并记录它
需要定义空构造函数:
public MyFactory () {};