如何修复 Jaspersoft Studio 插件中由 TraceGovernor 引起的 java.lang.NullPointerException?
How can I fix java.lang.NullPointerException caused by TraceGovernor in Jaspersoft studio plugin?
我正在为 Jaspersoft Studio 编写最新的插件。插件在尝试打开报告预览时崩溃。 (来自插件)java.lang.NullPoinpointerException 的堆栈跟踪:
com.jaspersoft.studio.debug.TraceGovernor.setup(TraceGovernor.java:111)
com.jaspersoft.studio.debug.TraceGovernor.initMaps(TraceGovernor.java:118)
com.jaspersoft.studio.debug.TraceGovernor.beforeReportInit(TraceGovernor.java:162)
net.sf.jasperreports.engine.fill.JRFillDatasetScriptlet.beforeReportInit(JRFillDatasetScriptlet.java:74)
net.sf.jasperreports.engine.JRAbstractScriptlet.callBeforeReportInit(JRAbstractScriptlet.java:176)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:236)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:119)
java.lang.Thread.run(Thread.java:745)
堆栈跟踪中的代码不是我的。我认为它无法加载必要的 类。 (Jaspersoft studio 可以加载所有必要的库)有谁知道,请问如何处理它?非常感谢。
编辑
我发现,这是由 Jaspersoft studio 中的这个 属性 引起的,加载扩展,即加载 TraceGovernor
。用于调试报告,但它与我的插件不兼容。
net.sf.jasperreports.extension.registry.factory.governor=com.jaspersoft.studio.debug.TraceGovernorExtensionsRegistryFactory
我已经通过从 java 包 com.jaspersoft.studio_6.3.0.final.jar\jasperreports_extension.properties
中删除它来解决这个问题,但我想要一些非破坏性的方法,如何禁用此扩展。
相关源代码位于:
NPE 似乎是 TraceGovernor
class 中未初始化的 jrConfig
字段的结果,ScriptletFactoryContext context
中的 getJasperReportsContext()
将被初始化] 在 TraceGovernor
的构造函数中返回了一个 instanceof JasperReportsConfiguration
.
您可以签出并浏览存储库以进一步调查 NPE 的原因。否则,我只能建议向 JasperSoft 提交错误报告。
我正在为 Jaspersoft Studio 编写最新的插件。插件在尝试打开报告预览时崩溃。 (来自插件)java.lang.NullPoinpointerException 的堆栈跟踪:
com.jaspersoft.studio.debug.TraceGovernor.setup(TraceGovernor.java:111)
com.jaspersoft.studio.debug.TraceGovernor.initMaps(TraceGovernor.java:118)
com.jaspersoft.studio.debug.TraceGovernor.beforeReportInit(TraceGovernor.java:162)
net.sf.jasperreports.engine.fill.JRFillDatasetScriptlet.beforeReportInit(JRFillDatasetScriptlet.java:74)
net.sf.jasperreports.engine.JRAbstractScriptlet.callBeforeReportInit(JRAbstractScriptlet.java:176)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:236)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:119)
java.lang.Thread.run(Thread.java:745)
堆栈跟踪中的代码不是我的。我认为它无法加载必要的 类。 (Jaspersoft studio 可以加载所有必要的库)有谁知道,请问如何处理它?非常感谢。
编辑
我发现,这是由 Jaspersoft studio 中的这个 属性 引起的,加载扩展,即加载 TraceGovernor
。用于调试报告,但它与我的插件不兼容。
net.sf.jasperreports.extension.registry.factory.governor=com.jaspersoft.studio.debug.TraceGovernorExtensionsRegistryFactory
我已经通过从 java 包 com.jaspersoft.studio_6.3.0.final.jar\jasperreports_extension.properties
中删除它来解决这个问题,但我想要一些非破坏性的方法,如何禁用此扩展。
相关源代码位于:
NPE 似乎是 TraceGovernor
class 中未初始化的 jrConfig
字段的结果,ScriptletFactoryContext context
中的 getJasperReportsContext()
将被初始化] 在 TraceGovernor
的构造函数中返回了一个 instanceof JasperReportsConfiguration
.
您可以签出并浏览存储库以进一步调查 NPE 的原因。否则,我只能建议向 JasperSoft 提交错误报告。