Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有多个请求的Birt引擎_Java_Birt - Fatal编程技术网

Java 具有多个请求的Birt引擎

Java 具有多个请求的Birt引擎,java,birt,Java,Birt,我正在使用BIRT引擎生成报告。报告运行正常,没有问题,但当我对报告进行压力测试时(例如,由不同的用户运行报告10次),我会在以下行中得到一个NullPointerException: factory.createReportEngine(config); 有时它会在查询生成时导致不同的异常 那么,有谁能就并发请求的BIRT引擎问题向我提供建议呢?如何解决这个问题 提前感谢:)BIRT引擎非常支持许多并发请求,但我们不能像您那样在每个报表上创建这个“IReportEngine”对象 此方法:

我正在使用BIRT引擎生成报告。报告运行正常,没有问题,但当我对报告进行压力测试时(例如,由不同的用户运行报告10次),我会在以下行中得到一个
NullPointerException

factory.createReportEngine(config);
有时它会在查询生成时导致不同的异常

那么,有谁能就并发请求的BIRT引擎问题向我提供建议呢?如何解决这个问题


提前感谢:)

BIRT引擎非常支持许多并发请求,但我们不能像您那样在每个报表上创建这个“IReportEngine”对象

此方法:

factory.createReportEngine(config);
应该在引擎初始化时一次性调用,然后可以将生成的IReportEngine对象存储在类的静态属性中。此外,应该同步初始化引擎的方法

因此,所有的报告请求都可以使用它,您就不会再有压力测试的麻烦了


编辑:这也适用于集群上下文,集群的每个节点都有自己的BIRT引擎。例如,如果集群中有3个节点(3个JVM),则会产生3个静态BIRT引擎。尽管以“同步”方法初始化每个引擎仍然很重要,因为me必须确保两个进程不会在同一JVM中同时调用factory.createReportEngine

感谢Dom的回复:)可能会初始化报表引擎一次,这是一个很好的增强功能,但同步的将无法与我一起工作,因为报表在群集环境中运行群集上下文不应该是问题,我编辑了答案