| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 11:25:26
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Olá pessoal, depois de muito procurar sobre minha duvida ate consegui desenvolver alguma coisa, mas ainda não está como quero...
Tenho uma aplicação desktop com swing que se comunica com app web via Servlets usando o URLConnection ok?!
mais ou menos assim:
Eis a classe parser...
Meu servlet, le isso des-serializa o "param" para Bairro, executa uma pesquisa, serializa retorna o objeto novamente...
A questão é:
Consigo fazer isso de forma mais elegante? postando/gravando diretamente em bytes? como o upload de um arquivo eu acho...
Tambem penso que com params String, caso eu venha usar um List<?> serializado pode haver problemas com tamanho e os caracteres da codificação...
Não quero usar XML, nem EJB (pois uso Tomcat somente e a aplicação é relativamente simples)...
e uso URLConnection pois quanto menor ficar o jar da aplicação no cliente é melhor...
Alguem sugere algo ??
Obrigado desde já!!
This message was edited 1 time. Last update was at 07/04/2010 14:58:22
|
=) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 11:30:20
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
ops, se eu postei no forum errado, pois swing e tals... se preferirem, pode mover...
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 12:48:04
|
plic_ploc
JavaChild
Membro desde: 11/06/2006 18:55:12
Mensagens: 137
Localização: Ibitinga - SP
Offline
|
E ai dooda!
Vou te passar um exemplo simples e objetivo que irá solucionar seu problema!
MyObject:
Servlet:
Requisição:
Usei : jgates.sourceforge.net
|
Java MVC - Brutos framework
Faça o download de um WebChat feito usando o Brutos MVC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 13:19:21
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Obrigado Mr. plic_ploc mas para a "postagem" no servlet qual seria a sugestão usando JSON então?
poss no servlet receber com:
e na postagem como envio o objeto? via parametro ainda? ou da pra escreve no outputStream da URLConnection?
Obrigado por enquanto...
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 13:51:32
|
plic_ploc
JavaChild
Membro desde: 11/06/2006 18:55:12
Mensagens: 137
Localização: Ibitinga - SP
Offline
|
Nesse outro exemplo, o objeto é enviado ao servlet e o servlet devolve o objeto.
Requisição:
Servlet:
|
Java MVC - Brutos framework
Faça o download de um WebChat feito usando o Brutos MVC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 13:56:16
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Obrigdo novamente, com teu exemplo, consegui usando a propria classe de parses com Base64 que eu ja estava usando...
assim já melhorou bastante, qualquer avanço, posto aqui novamene...
vallew's
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 14:52:33
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Finalmente com um pouco mais de estudos cheguei ao resultado que gostaria sem nenhuma biblioteca/jar a mais...
Meu servlet ficou assim:
Meu programa teste ficou assim:
e o "Bairro" é apenas um POJO que implementa Serializable...
O resultado pra mim ficou perfeito, será que pode haver algum problema nesse tipo de comunicação?
Por enquanto esta ótimo assim!
Vallew...
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2012 12:43:35
|
rfsilva
Thread.start()
![[Avatar]](/images/avatar/e724a459022b336631adc7318204fa27.jpg)
Membro desde: 25/02/2009 14:04:32
Mensagens: 25
Localização: Vitória-ES
Offline
|
dooda wrote:Finalmente com um pouco mais de estudos cheguei ao resultado que gostaria sem nenhuma biblioteca/jar a mais...
Meu servlet ficou assim:
Meu programa teste ficou assim:
e o "Bairro" é apenas um POJO que implementa Serializable...
O resultado pra mim ficou perfeito, será que pode haver algum problema nesse tipo de comunicação?
Por enquanto esta ótimo assim!
Vallew...
Oi dooda!
Vc recebeu algum feedback a respeito de possíveis problemas com esse tipo de comunicação? Estou prestes a adotar essa ideia, e queria saber a respeito!
Obrigado!
Rodrigo
|
Eu nunca morri na minha vida, pois sou computeiro, não desisto nunca!!! Por isso, sobreviveremos até a morte!!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2012 13:09:09
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Cara!!! o que posso te afirmar com certeza é que trabalhei em outro projeto que tratava tudo com .xml e num projeto pessoal que esta funcionamento ate hoje.
Este modelo de comunicação, que foi um pouco aprimorado, funciona mais do que perfeitamente... estamos muito satisfeitos com os resultados e não mudaríamos não.
No modelo abaixo todas as classes que navegam pela nuvem, usamos externalização ou invés de serialização, pelo fato de heranças e muitos objetos e atrbiutos inuteis nas classes comuns, então na externalização, nós definimos como e quais campos serão transmitidos basicamente...
Tambem usamos um Objeto genérico para transmissão, uma especie de classe protocolo e ao enviar para a nuvem tambem compactamos usando o GZip. Então compartilhamos entre client e server o mesmo jar assinado que é comum entre eles...
Enfim, com isso conseguimos trafegar arrays de bytes entre os dois e assim transmitir arquivos com umas melhoras aqui e acolá. O que ressalto é que em nosso projeto funciona mais do que bem, e alguns trechos de codigos e comunicação foram projetados já pensando nesse ambiente.
Fizemos testes de carga no server, uso de banda, etc etc com JBoss 5 ainda, e tudo se mostrou mto bom pra nós...
Poste suas experiencias e considerações assim que tive-las...
Um grande abraço!!
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 12:56:51
|
mateus.cordeiro
JavaChild
![[Avatar]](/images/avatar/5acf53c05c0b4e93d377dbad89234af8.jpg)
Membro desde: 06/07/2011 23:39:47
Mensagens: 128
Localização: São Paulo - SP
Offline
|
Dooda,
Muito bom esse material que vc disponibilizou, porem to com um problema aqui.
Quando eu rodo o Servlet e o teste.class do mesmo projeto, funciona de boa tranquilo!
Agora o problema está sendo quando eu rodo o tomcat com o servlet e tento acessar de um outro projeto em swing.
No debug ele vai ate essa linha:
ObjectInputStream ois = new ObjectInputStream(conn.getInputStream());
Depois ele retorna erro = null e eu não to conseguindo resolver isso;
Segue meu servlet:
Segue o class que faz a conexao com servlet de dentro de um swing:
Obrigado
This message was edited 1 time. Last update was at 08/02/2012 12:57:18
|
VIVA O GUJ! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 13:12:33
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Ola Mateus,
Que bom que o material lhe foi util, é isso que mantém o GUJ =), vamos ao seu caso.
Noto que na linha que da o erro no teu client swing você esta tentando recuperar o InputStream da conexão. Porém no teu servlet você escreve com WriteUTF8();
Não consigo testar aqui no servico, mas tente assim:
O bacana dessa solução é trafegar os objetos serializados tanto pra envio quanto pra recebimento, uma dica, que usamos aqui, é um Objeto Protocolo, que que é enviado e recebido, ele contem alguns atributos como Classe, Método, Parametros, Sucesso, Mensagem etc...
Posta ai o resultado...
Abraço!
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 14:35:07
|
mateus.cordeiro
JavaChild
![[Avatar]](/images/avatar/5acf53c05c0b4e93d377dbad89234af8.jpg)
Membro desde: 06/07/2011 23:39:47
Mensagens: 128
Localização: São Paulo - SP
Offline
|
Amigo,
Ainda está dando o mesmo erro:
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at digitacao.EnviarObjeto.enviando(EnviarObjeto.java:39)
|
VIVA O GUJ! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 14:48:40
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
Mateus,
Tambem não consigo confirmar isso pra ti, vejo que no teu client vc usa java.net.URLConnection, em meu comunicador uso java.net.HttpURLConnection.
E ai abrir a conexão, faço o cast dai
Tambem confirme se ele escreve mesmo no output no servlet
Veja lá...
abraço!
|
=) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 14:48:42
|
mateus.cordeiro
JavaChild
![[Avatar]](/images/avatar/5acf53c05c0b4e93d377dbad89234af8.jpg)
Membro desde: 06/07/2011 23:39:47
Mensagens: 128
Localização: São Paulo - SP
Offline
|
Apenas p saber, eu criei um objeto no projeto do servlet e outro no projeto do swgin os dois assim:
Está correto?
|
VIVA O GUJ! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 14:51:52
|
dooda
JavaChild
![[Avatar]](/images/avatar/2dd6f963d9acac8cff87b962bdce534c.jpg)
Membro desde: 26/12/2006 16:05:19
Mensagens: 146
Localização: Cascavel-PR
Offline
|
hmm, não sei se era esse teu problema,
Mas você deve ter um objeto só, ou seja, um terceiro projeto com este teu "Objeto" então vc exporta o jar, e usa ele tanto no client/swing como no server/servlet.
Vai tentando, qualquer progresso, posta ai.
=)
|
=) |
|
|
 |
|
|