Integrar Firefox com Java Swing

7 respostas
T

Olá,

Tenho um projeto de Java Swing (Windows) que conversa com o  [color=darkred][b]Internet Explorer 6[/b][/color] por ActiveX (Jacob). Acontece que o IE6 é um cara muito velho e ultrapassado e eu não quero mais falar com ele. Preciso agora conversar com o Firefox 3.6 que é relativamente mais novo e possui recursos muito mais interessantes.  que o Firefox é um cara muito importante que roda tanto no Windows quanto no Linux, portanto não possui um ActiveX para conversar com ele.

A interface ActiveX no IE me permite criar instancias do browser, verificar se  instancias ativas e manipular a instãnica escolhida, [b]INCLUSIVE O DOM DA PÁGINA QUE ESTIVER RENDERIZADA NA INSTÂNCIA[/b]. Isso quer dizer que a minha aplicação pode abrir um IE, mandar ele navegar para uma página qualquer e, em momento oportuno, pegar qualquer dado do DOM que estiver renderizado na instância.

Como a aplicação que vai conversar com o Firefox (se possível) vai ficar numa empresa muito grande que não permite o uso da versao de qualquer software, poderei usar apenas Firefox 3.6 e Java Swing.

A grande pergunta é: fazer uma conversa dessa com o Firefox é possível?

Desde  agradeço.

Thiago Rosa

7 Respostas

fernandopaiva

j2se ??? ja pensou em Java Web Start ???..pense sobre isso…eu to usando e ta resolvendo meus problemas.

t+ e boa sorte.

Flavio_machine

Cara fiz um protótipo para a empresa que eu trabalho com jms e gizzy framework do glassfish.
O software interno nosso é swing, eu tinha que fazer um chat com swing e integrando com a camada web consegui fazer com que desse para escrever no swing e aparecer em tempo real na web.
Obs: no jms eu usei ActiveMQ.
Espero ter ajudado.

T

Em primeiro lugar, obrigado pela ajuda de vocês.

j2se ??? ja pensou em Java Web Start ???..pense sobre isso…eu to usando e ta resolvendo meus problemas.

t+ e boa sorte.

Java Web Start vai me possibilitar baixar um jnpl que vai funcionar como se fosse um jar na máquina cliente, certo? Como eu consigo pegar os dados do DOM com o jnpl rodando?

Cara fiz um protótipo para a empresa que eu trabalho com jms e gizzy framework do glassfish.
O software interno nosso é swing, eu tinha que fazer um chat com swing e integrando com a camada web consegui fazer com que desse para escrever no swing e aparecer em tempo real na web.
Obs: no jms eu usei ActiveMQ.
Espero ter ajudado.

Como isso funciona? Eu tenho mesmo acesso ao DOM da página que está renderizada?

T

Dei uma lida em JMS e vi mais ou menos como funciona. Será que eu consigo implementar algo no PHP pra mandar mensagem para a máquina cliente sem ter problema de segurança?

Exemplo:
O cara ta no meu site (php) num ambiente de intranet e está com a aplicação swing aberta junto com o browser. Aí quando ele dá um comando por um form, o php detecta o ip do cara e manda mensagem pra aplicação swing executar uma ação local.

Flavio_machine

Eu fiz isso mas utilizando o glassfish e o ActiveMq no servidor glassfish eu usei commet para enviar os dados para o cliente mais era um chat e tinha que ser em tempo real
dependendo do caso vc pode fazer com reload.
O activeMq da suport para varias linguagens.
http://activemq.apache.org/cross-language-clients.html

T

Flavio machine:
Eu fiz isso mas utilizando o glassfish e o ActiveMq no servidor glassfish eu usei commet para enviar os dados para o cliente mais era um chat e tinha que ser em tempo real
dependendo do caso vc pode fazer com reload.
O activeMq da suport para varias linguagens.
http://activemq.apache.org/cross-language-clients.html

Flavio,

Entendi o que você disse, mas olha só no que eu pensei baseado no que você me disse:

1 - Meu usuário está com minha aplicação Swing aberta que faz a parte server do socket (lembrando que estou num ambiente de intranet);

2 - Meu usuário está com o browser aberto em um formulariozinho com 2 input (data inicial e data final) e um button (submit);

3 - Quando o (proto)usuário clicar no submit, o formulário fará uma requisição para uma página qualquer (php, no meu caso) que vai possuir um client socket, se comunicar com a minha aplicação swing (server socket) e mandar a mensagem do que ele tem que fazer, passando como parâmetros a ação e as duas datas digitadas no formulário. É importante salientar que pelo php eu peguei a identificação do usuário na rede e sei exatamente qual a máquina dele.

4 - Minha aplicação swing recebe a mensagem do browser e executa a ação passada pelo parâmetro que SOMENTE ELE PODE EXECUTAR.

<- DAKI EM DIANTE SE FOR POSSÍVEL ÓTIMO, SE NÃO, SEM CRISE ->

5 - A aplicação swing manda mensagem pro browser falando que terminou a execução.

Minha dúvida:

É possível que o meu servidor web que está na intranet, mas fisicamente em outro lugar se comunique com uma máquina cliente pelo nome da máquina via socket?

Flavio_machine

Então tem umas questões:

  • Eu tentei usar um Server socket junto com um servidor web no caso glassfish, e o servidor nem subia, acho que não vai funcionar com o client socket tb.
  • Como vc vai passar os dados do PHP para o client socket Java ?
  • Como vc vai ler os dados do client socket e passar para o PHP?
  • Como vc vai enviar os dados para o Firefox, reload ou Ajax reverso?

O JMS é a ferramenta certa para isso ela foi desenvolvida para isso, existe a MOM que pode receber mensagens de várias linguagens e enviar para qualquer cliente que estiver inscrito em um tópic.
Depois vc pode tirar mais vantagens dessa tecnologia.

Dependendo do caso não descarte a possibilidade do swing salvar os dados no banco de dados e o php ler fazendo reloads de tempo em tempo, e vice versa, é bem mais simples.

Inté.

Criado 20 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 7
Participantes 3