首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载IllegalAccessException时.jrxml

加载IllegalAccessException时.jrxml
EN

Stack Overflow用户
提问于 2017-04-25 13:51:26
回答 1查看 194关注 0票数 0

我正在尝试修复一个错误,当试图将jasper报告导出为pdf时,但是当使用JRXmlLoader加载一个JRXmlLoader文件时,代码会抛出这个异常:

代码语言:javascript
复制
Caused by: java.lang.IllegalAccessException: Class org.openide.util.WeakListenerImpl$ProxyListener can not access a member of class org.openide.filesystems.$Proxy0 with modifiers "public"
    at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
    at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(Unknown Source)
    at java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openide.util.WeakListenerImpl$ProxyListener.<init>(WeakListenerImpl.java:413)
    ... 100 more

这是导致这种删除的代码:

代码语言:javascript
复制
    JasperDesign jasperDesign = JRXmlLoader.load("C:/jrxmls/myreport.jrxml"); //< this line
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, resultSetDataSource);

因为这不是我的代码,而且我也不知道如何使用jasper,所以我很抱歉不能为这个问题提供更多的上下文。

我在构建路径中添加了多个org.openide,因为我有大量的"ClassNotFoundException",也许这就是问题的根源?

我在某些地方读到,问题可能来自jasperreport与JDK 8的兼容性问题,但奇怪的是,代码在从Eclipse运行时工作,只有在作为可运行的jar文件运行时才会引发异常。这个程序并不年轻,它可能有两年的时间,直到现在,这个程序运行得很完美(正如我所听到的)。

编辑:好的,我试着使用jre的1.7版运行这个程序。不幸的是,由于它依赖于运行在1.8上的其他程序,所以我无法测试这个解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-28 09:17:06

好吧,我发现问题出在哪里了。我认为这是一些缺少的罐子问题,但实际上是一个完全不同的错误。我们得到的第一个例外是这个

代码语言:javascript
复制
org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 16; Error at line 12 char 16: null

当查看堆栈跟踪时,它显示如下:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: org.openide.util.Lookup
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 74 more

这就是为什么我认为程序缺少了一些依赖关系。

但问题是,在.jrxml文件中,我们添加了一个仅在测试文档时使用的<queryString>...</queryString>,在代码中,我们希望用另一个查询替换这个查询,这会导致抛出这个异常。

通过删除整个<queryString>...</queryString>,我们能够解决问题。

谢谢你的帮助,我很感激。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43612608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档