2011-02-25 86 views
1

我开发了使用JasperReports进行报告的网络应用程序。 因为我必须使用Applet来查看客户端的报告。我可以正常看到小程序中的报告,但是当涉及到打印时(当我单击查看器中的打印按钮时),它会引发一个异常,我可以在Java控制台中看到它。我对这个问题进行了大量的研究,并且做了网络专家提出的任何建议。我在catalina.policy文件中添加了授予权限,因为我使用Tomcat作为我的Web服务器。此外,在java.policy文件中添加授权许可给我的小程序作为代码库。我签署了具有Applet类文件的jar文件。但我仍然得到同样的错误。从Applet打印JasperReport

下面是来自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 

回答

2

为了让一个applet打印您需要注册的小程序:

Signing and Verifying JAR Files

Signing Your Applet

+0

非常感谢您的快速回复。我已经做到了。还设置了策略文件,catalina和java。我仍然有例外。 – Mihir 2011-02-25 12:13:30

+0

另一个问题是,如果我们签署Applet和Jar文件,那么是否需要更改策略文件? – Mihir 2011-02-25 12:14:32

+0

为了获得运行Applet的权限,我得到了附加的对话框,其中包含我在此附加的屏幕截图。 – Mihir 2011-02-25 12:18:32