Relatório em Applet

Pessoal, como faço para exibir um relatório criado no IReport através de uma applet?

Está dando exceção de segurança.

Obrigado.

Exceção de segurança em applet requer que sua applet seja assinada, ou que você mexa em um arquivo de policies. É melhor assinar a applet. Há vários lugares onde você pode aprender a assinar uma applet, não vou dar detalhes aqui.

Como assim??? Só molhou o bico??? Que isso?

Ajuda aeh, velho… to precisando do negócio, custa?

Eu nao quero ver o código, senão mandava um tópico: “Código para assinatura digital, quem me passa???”

Quero saber pelo menos por onde começar.

“Aquele que sabe , fala que sabe e insiste em não ensinar é egoista e ignorante na sua sabedoria.”

Aristóteles. :wink:

Obrigado.

Tá bom, tá bom, aqui vai:

http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/rsa_signing.html

Assinar applets é superchato, por isso é que não fiquei dando muitos detalhes.

Você precisa seguir a receita de bolo no documento acima, e mesmo assim de vez em quando o “bolo fica solado”.

:smiley: Valeu!!! Era isso que eu procurava, muito obrigado!!!

Consegui gerar a assinatura, mas mesmo assim ainda continua dando erro de segurança. O erro é o seguinte:

java.security.AccessControlException: access denied (java.io.FilePermission RelatorioProducao.jasper read) 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.checkRead(Unknown Source) at java.io.File.exists(Unknown Source) at dori.jasper.engine.util.JRLoader.loadObject(JRLoader.java:114) at dori.jasper.engine.util.JRLoader.loadObject(JRLoader.java:105) at dori.jasper.engine.JasperManager.loadReport(JasperManager.java:1035) at RelPrestador.jButton1ActionPerformed(RelPrestador.java:116) at RelPrestador.access$100(RelPrestador.java:23) at RelPrestador$2.actionPerformed(RelPrestador.java:78) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener$ReleasedAction.actionPerformed(Unknown Source) at javax.swing.SwingUtilities.notifyAction(Unknown Source) at javax.swing.JComponent.processKeyBinding(Unknown Source) at javax.swing.JComponent.processKeyBindings(Unknown Source) at javax.swing.JComponent.processKeyEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

e o meu arquivo .java.policy está assim:

/* AUTOMATICALLY GENERATED ON Wed Nov 10 11:31:23 BRST 2004*/
/* DO NOT EDIT */

keystore “file:/C:/WINDOWS/.keystore”;

grant signedBy “mykey”, codeBase “file:/C:/Windows/Desktop/Pcc/Automed.jar” {
permission java.io.FilePermission “<<ALL FILES>>”, “read, write, delete, execute”;
};

O que pode ser? Acho que não estou esquecendo de nada naum…

Hum, é que nunca testei applets que acessam outros JARs, acho que se um applet acessa outro JAR e esse JAR não está assinado, vai dar o mesmo problema (por isso é que disse que o “bolo fica solado” de vez em quando.)
Só para ver se é isso, tente assinar também o JAR que você está usando, não só o seu applet.

Estou usando 9 jar’s. 3 para o firebird, 5 para o jasper e 1 que é o meu jar com os meus .class e tudo mais. Fiz a assinatura para todos eles e o erro agora é o seguinte:

java.io.FileNotFoundException: RelatorioProducao.jasper at dori.jasper.engine.util.JRLoader.loadObject(JRLoader.java:116) at dori.jasper.engine.util.JRLoader.loadObject(JRLoader.java:105) at dori.jasper.engine.JasperManager.loadReport(JasperManager.java:1035) at RelPrestador.jButton1ActionPerformed(RelPrestador.java:116) at RelPrestador.access$100(RelPrestador.java:23) at RelPrestador$2.actionPerformed(RelPrestador.java:78) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

PS: Eu tenho certeza de que o meu arquivo RelatorioProducao.jasper tá dentro do meu .jar!!!

Puxa, agora não sei. Vou dar uma olhada nesse fonte.