从Applet打印JasperReport

时间:2011-02-25 11:07:06

标签: java applet jasper-reports

我开发了使用JasperReports进行报告的网络应用程序。 在那里我必须使用Applet在客户端查看报告。我可以在applet中正常查看报告,但是当涉及到打印时(当我点击Viewer中的Print Button时),它会抛出一个Exception,我可以在Java控制台中看到它。我浏览了很多关于这个问题,并做了网上专家提出的任何建议。我在catalina.policy文件中添加了授权权限,因为我使用Tomcat作为我的Web服务器。另外,我的applet添加了授予权限作为java.policy文件中的代码库。我签署了一个包含Applet类文件的jar文件。但我仍然得到同样的错误。

下面是来自Java控制台的堆栈跟踪。

Java Plug-in 1.6.0_24
Using JRE version 1.6.0_24-b07 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Administrator


Exception in thread "Thread-13" java.lang.ExceptionInInitializerError
    at net.sf.jasperreports.view.JRViewer$21.run(JRViewer.java:1211)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.print)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
    at sun.plugin2.applet.Applet2SecurityManager.checkPackageAccess(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at net.sf.jasperreports.engine.JasperPrintManager.<clinit>(JasperPrintManager.java:419)
    ... 2 more

1 个答案:

答案 0 :(得分:2)

为了允许打印小程序,您需要签署小程序:

Signing and Verifying JAR Files

Signing Your Applet