Carregando uma DLL em um Applet

Bom dia,

Estou tentando imprimir um nota fiscal em uma impressora matricial, criei uma dll em Delphi no padrão JNI, e estou tentando carregar ela em um Applet.

  • Criei uma classe que carrega a dll, arquivo em anexo: NotaFiscal.java
class NotaFiscal
{
  public native void imprimeNota( int notaID );
  static
  {
    System.loadLibrary("wms");
  }
}
  • Criei uma applet, arquivo em anexo Nota.java
import java.applet.*;
import java.awt.*;

public class Nota extends Applet {

  public void init(){
  }

  public void start() {
     int notaID = 508;
	 NotaFiscal hw = new NotaFiscal();
	 hw.imprimeNota( notaID );
  }

  public void paint(Graphics g) {

    g.setColor(Color.red);
    g.drawString("Teste de Applet",5,10);
  }

}
  • E um html que carrega a applet, arquivo em anexo Nota.html
<head>
<title>Teste - Olá Mundo</title>
</head>
<applet code="Nota.class" width="300" height="300"></applet>
</html>

Obs.: a dll neste teste, deveria imprimir um arquivo TXT em c:\impressao.txt e exibir uma mensagem na tela.

mas aparece esse erro, eu executei direto pelo prompt com esse comando: appletviwer Nota.html:

C:\j2sdk1.4.2_06\bin>javac Nota.java
C:\j2sdk1.4.2_06\bin>javac NotaFiscal.java
C:\j2sdk1.4.2_06\bin>appletviewer Nota.html
java.lang.ExceptionInInitializerError
        at Nota.start(Nota.java:11)
        at sun.applet.AppletPanel.run(AppletPanel.java:377)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.security.AccessControlException: access denied (java.lang.Runtim
ePermission loadLibrary.wms)
        at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:269)
        at java.security.AccessController.checkPermission(AccessController.java:
401)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
        at java.lang.SecurityManager.checkLink(SecurityManager.java:810)
        at java.lang.Runtime.loadLibrary0(Runtime.java:782)
        at java.lang.System.loadLibrary(System.java:834)
        at NotaFiscal.<clinit>(NotaFiscal.java:6)
        ... 3 more

Agradeço qualquer ajuda.

[]´s
Sandro Borges

Bom, supondo que a sua DLL funcione corretamente em um programa Java stand-alone.

a) A sua DLL deve estar em um diretório no PATH (provavelmente você já deve ter feito isso)
b) O seu applet deve estar assinado, senão dá esses erros de permissão que você viu.

Realmente eu não assinei o applet.
Valeu pela dica.

Thingol…

Eu estou precisando assinar uma Applet também… mas não tenho idéia de como proceder.

Tu tem algum material que ensina a fazer isso que possa estar indicando?

Atenciosamente.

Sandler