从 Applet 打印 JasperReport [英] Printing JasperReport From Applet

查看:22
本文介绍了从 Applet 打印 JasperReport的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have developed web application which uses JasperReports for reporting purpose. In that I have to use Applet to View report at Client side. I can see report in applet normally , but when it comes to printing (when i clicked on Print Button in Viewer), it throws an Exception which I can see in Java Console. I surfed lots of about this Problem and did whatever which are suggested by experts on the net. I added the grant permission in catalina.policy file as I uses the Tomcat as my web server. Also, added grant permission to my applet as a codebase in java.policy file. I signed the jar file which has class file for an Applet. But I still getting the same error.

以下是来自 Java 控制台的堆栈跟踪.

below is the stack trace from Java console .

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

推荐答案

为了允许小程序打印,您需要对小程序进行签名:

In order to allow an applet to print you need to sign the applet:

签署和验证 JAR 文件

签署您的小程序

这篇关于从 Applet 打印 JasperReport的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆