【问题标题】:How can I fix java.lang.NullPointerException caused by TraceGovernor in Jaspersoft studio plugin?如何修复 Jaspersoft Studio 插件中由 TraceGovernor 引起的 java.lang.NullPointerException?
【发布时间】:2016-07-21 18:13:10
【问题描述】:

我正在为 Jaspersoft 工作室编写最新的插件。插件在尝试打开报告预览时崩溃。 (来自插件) 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 工作室可以加载所有必要的库)有谁知道,请问如何处理它?非常感谢。


编辑

我发现,这是由 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? I think it can't load necessary classes. - 你检查类加载器了吗?
  • 我添加了一些附加信息。
  • 这应该是提交给 JasperSoft 的错误报告。

标签: java nullpointerexception eclipse-plugin jasper-reports jaspersoft-studio


【解决方案1】:

相关源代码在:

http://anonsvn:anonsvn@code.jaspersoft.com/svn/repos/jaspersoftstudio/tags/6_3_0_final/com.jaspersoft.studio/src/com/jaspersoft/studio/debug/TraceGovernor.java

NPE 似乎是TraceGovernor 类中未初始化的jrConfig 字段的结果,如果TraceGovernor 的构造函数中的ScriptletFactoryContext context 中的getJasperReportsContext() 返回instanceof JasperReportsConfiguration,则该字段将被初始化。

您可以签出并浏览存储库以进一步调查 NPE 的原因。否则,我只能建议向 JasperSoft 提交错误报告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多