Applet invisivel lendo serial e setando um input text

1 resposta
sales_paulo

Ola a todos,

Por favor, gostaria de uma ajuda em um problema que eu estou tendo no trabalho. Primeiramente vou descrever o ambiente e depois o problema, entao vamos la:

Ambiente
(1) Versao do Java: Java 1.4
(2) Applet, JSP

Problema
(1) Tenho que fazer a leitura do codigo magnetico de um cartao atraves de uma aplicacao Web, usando uma tela em JSP.

Tentativa de solucao
(1) Para solucionar o problema resolvi criar um applet invisivel, ou seja, wigth=0 e height=0 que ao ser criado comesse a ouvir a porta serial e assim que houvesse algum evento na porta disparasse o codigo que enviaria o conteudo recebido para a tela JSP. Para enviar o conteudo retornado pela portal serial na applet para o JSP eu estava usando a chamada de um metodo javascript da JSP atraves da applet, usando JSObject. Mas descobri que este recurso nao funciona muito bem na versao do java 1.4.

Gostaria de saber se alguem sabe de uma forma para solucionar meu problema?

Agradeco antecipadamente.
Paulo R. A. Sales
P.S.: Link que eu consultei:
[url]file:/export/home/ps32966/dev-java/tests/teste_applet_js/src/java/JSTestApplet.java[url]

1 Resposta

T

a) Faça applets invisíveis setando a altura e a largura com pelo menos 1 pixel. Zero pixels dão problemas.
b) O tal applet, é claro, precisa ser assinado, mas acho que você sabe isso melhor que eu.
c) A interação com JavaScript (LiveConnect) é meio chatinha, e precisa de um troço que é mais ou menos assim:

public void rotinaQueDeveSerChamadaPeloJavaScript() {
AccessController.doPrivileged (new PrivilegedAction() {
    public Object run() {
        // faça aqui as coisas que têm de ser feitas a partir de uma chamada JavaScript
        ...
        return new Object();
    }
}
}

d) Você precisa disponibilizar um pequeno instalador de código nativo junto com a sua página, porque você precisa copiar a DLL JNI em algum lugar, assim como as suas classes do JavaComm, que têm um lugar certo para ficarem.

Criado 29 de fevereiro de 2008
Ultima resposta 29 de fev. de 2008
Respostas 1
Participantes 2