Pessoal, estou iniciando com Java e já fiz vários exemplos utilizando o JPA, tudo tranquilo, agora pintou uma dúvida e não conseguir achar aqui no forum nem no google algo que realmente tirasse a minha dúvida, talvez seja a forma de pesquisar que eu errei, seguinte, eu tenho as entidades normais com anotações JPA, fazendo os testes com as classes main e até com as JUnit tudo persiste tranquilo, agora imagine se eu quiser desenvolver uma aplicação desktop, com o swing(no caso vou usar o JTatto), como eu faria para a conexão não ser do aplicativo direto para o banco? No caso se comunicaria com um server e esse server(acredito usando Webservices com protocolo HTTP) é que efetivamente persistiria as informações, no caso um thinClient.
Mudaria as definições das classes? mudaria no persistence.xml?
Uma outra dúvida e só achei tópico confuso e extremamente grande é a respeito de Binding, como eu passar as informações das classes Entyties para as views no caso do Swing? Table, textfield etc…
rodrlgo,
Supondo que a sua aplicação desktop se comunique com o servidor via http p. ex, suas entidades não mudariam. No server estaria a persistência que lida com a conexao e gravação no banco de dados recebidos do desktop;esse server disponibilizaria via http os dados e vc ao recebê-los faria a transformação nos bean´s correspodentes (acredito que se for webservice rest é mais fácil) para alterar seus componentes swing.
Nota que nesse caso fazer binding dos componentes visuais com os dados recebidos do webservice não seria difícil desde que vc tivesse uma camada bem definida pra receber e enviar os dados e interfacear desktop e webservice.
Olá, obrigado pela resposta
Deixe ver se entendi direito, no lado servidor estaria um webserver(tomcat por exemplo) e as classes de persistência, a comunicação seria através de uma camada(Bean) no lado cliente, que recebia e enviada os dados para o servidor?
Através dessa camada bean(pelo visto iria ter um padrão de projeto observer) tratava de enviar os dados recebidos via HTTP(talvez REST) para a visualização(components swing)
Esse Bean seria uma espécie de “DataSource” “Binding”? Será que não existe frameworks que já faça isso?
imagine todas as suas classes de serviço, basicamente, você iria criar web services para estar consumindo do lado do cliente, ou também você poderia usar EJBs, caso fosse um cliente Java.
no caso com web services, você teria o seu web service com os serviços que você desejaria expor, por exemplo:
@WebService
public class ClientEndpoint implements ClientWebService{
@WebMethod
public void addClient(Client c){
//logica p/ add um cliente
}
}
@WebService
public interface ClientWebService{
@WebMethod
void addClient(Client c);
}
e na parte do cliente você estaria consumindo esses serviços, no caso, você executaria os métodos como se fossem locais.
tem muitos exemplos de como consumir um web service em java na internet, se quiser, tem no meu blog, só acessar num dos links abaixo!
[]'s