Gostaria de saber se é possível criar uma aplicação web na qual o cliente seria composto de uma interface swing e o servidor estaria em um container web tomcat. Gostaria de usar spring e hibernate no servidor.
Se essa abordagem é possível, como faço para conectar o cliente ao servidor? eu teria dois projetos um cliente e um servidor, como os dois se “conheceriam”?
sei que com RMI da pra fazer…
Fiz um na faculdade, como trabalho, mas se for para aplicações maiores, não sei se o rmi da conta…
è possível sim, eu utilizei o spring para expor os serviços remotos, no lado servidor, e no lado cliente para pega-los.
O que vc está querendo fazer é muito simples, dê uma olhada no spring remoting.
Minha dúvida é que como é uma aplicação usando swing no cliente, os projetos na minha IDE seriam diferentes (2 projetos distintos). Todos os exemplos que vi com o spring usavam apenas um projeto soh para codificar o cliente e o servidor (no cliente liguagem como html, jsp etc). Como faço pra que os serviços definidos no spring do lado do servidor sejam conhecidos pelo Cliente swing em outro projeto diferente.
Para utilizar Swing na web utilize applets.
O problema é que applets podem ser simples de programar, mas possuem algumas limitações quanto ao acesso ao servidor.
Procure no google por applets assinados.
Márcio,
Vc vai ter dois projetos: um para o lado do servidor e outro para o lado swing. Eu na verdade crio até mais, eu tenho um projeto para as classes POJOs, e outro para as classes de persistência, depois crio o projeto do servidor e um outro para o cliente swing. Eu faço assim porque o servidor e cliente tem dependências com as classes POJOs.
Certo, mas os métodos de acesso a dados ficariam no projeto do servidor certo? e como eu faria para as minhas classes no lado do cliente (swing) acessassem esses métodos para pode obter as collection de dados provenientes do hibernate?
Como já foi dito, com spring-remoting tu consegue isso.
http://static.springframework.org/spring/docs/2.5.x/reference/remoting.html
Inclusive temos um projeto aqui na empresa que usa um esquema bem parecido.
É dois projetos, um com as views swing e outro projeto web que executa no server.
Eu acho que usar usar o commons HttpClient e fazer get’s e post’s é mais negócio evitando principalmente problemas com firewall.
Diversos tópicos discutem isso aqui no guj, da uma olhada em alguns:
Aqui uma boa discussão:
http://www.guj.com.br/posts/list/84347.java
E nessa tem um bom exemplo de como fazer:
http://www.guj.com.br/posts/list/28381.java
Márcio,
Você transfere o que quiser, um objeto ou uma lista de objetos. Com o spring remoting é muito fácil. Eu inclusive desenvolvi um framework MVP, para facilitar desenvolvimento deste tipo de aplicação.