Afinal quem usa o GWT?

34 respostas
J

Este é um tópico de informação

gostaria de saber quem usa o GWT, onde ele pode ser usado
quais as vantagens dele

Quais as dificuldades encontradas por ele

E a integração com hibernate? posso confiar?

Quem já conhece tem como ajudar passando um link de algum lugar que ajuda nos estudos desse framework?
Para abrir a discussão quero falar da minha opnião

Acho interessante essa tecnologia, potente em visual, porem acho muito complicado sua estrutura
esse tipo client-server tira o sono.
Questionei o hibernate por causa do hibernate4gwt, ainda nao entendi… mas creio que o hibernate normal não consegue suportar o gwt… ou o gwt nao tem integridade com hibernate depende do ponto de vista

sem falar nos problemas de bindings: componentes gwt nao entende objeto , entende string,
por isso uma combo nao carrega quando a pesquisa é feita.
Ainda é um mistério pra mim o funcionamento dessa tecnologia, ms estou aqui para pedir ajuda

alguem tem mais informação?

Bom a discussão esta aberta…

Abração galera!

34 Respostas

F

Bom, eu achei legal, já brinquei e tal. O questionamento que você tem de client-server é um certo receio que eu tenho também e que acho meio chato nele, nada impossível, mas fiquei com receio.

Pelo o que eu entendi a parte web vai virar javascript e por isso que você tem que usar o RPC para poder acessar coisas no servidor, como os dados no banco por exemplo.

A documentação no site deles code.google.com é muito boa, mas tem que ler mesmo, e ainda tem um tutorial aqui no GUJ que explica bem. Já fiz algumas coisas com o Netbeans usando o plugin do GWT, então ele cria toda a estrutura e tal. Nunca fiz usando a linha de comando para criar as coisas e acho que o que o Netbeans gera fica diferente, pois, quando peguei os samples a estrutura tinha diferenças.

Achei chato ter que implementar interface daqui, extender classe dali, implementar a callback e tal para fazer o RPC. Mas eu gosto desses frameworks de web, meio desktop na web.

Quanto ao hibernate4gwt, eu desconheço.

J

Ooo cara vlw, vou dar algumas pesquisadas no google.code

questionei sobre hibernate4gwt porque se já é dificil achar algo sobre o gwt…
está mais dificil ainda achar assuntos sobre o hibernate4gwt

vlw

J

Para conhecimento:

Estudando o HIBERNATE4GWT

http://code.google.com/webtoolkit/gettingstarted.html

I

Eu estou usando GWT + GXT para fazer o meu site e não estou arrependido:

Por enquanto o site tem:
Um jogo de quebra-cabeça:
o usuário pode fazer upload da imagem ou escolher uma do site, pode escolher o nível de dificuldade, o site testa se a imagem cabe na resolução do navegador do usuário, corta em peças de acordo com o nível de dificuldade, conta o tempo para resolução da imagem, salva recordes e várias outras coisas.

Um chat:
O chat tem opção de reservado e para todos, não permite html nas msgs, verifica novas msgs a cada 2 seg usando apenas 14 bits na requisição, controla fila de msgs, verifica se o usuário fechou o navegador, a janela do chat, deu um refresh ou um backward e retira ele automáticamente da sala.

Um black jack:
Num tem quase nada pronto.

Moral da história:
A produtividade não é das melhores, pq tem que ficar programando as telas em algo pareciso com o swing sem o matisse e tem que ficar aprendendo a linguagem nos código fonte deles. Dá pra fazer maravilhas apenas com o java, sem nenhum pingo de javascript.

aqui o link do gxt:

Um dia eu vou colocar esse site no ar…

J

ivo costa,
Pow cara maneiro, você é gerreiro velhoo

me deu vontade até de estudar gwt. mas voce fez algum deles para conexão com banco de dados?

Quando colocar no ar avisa a gente!
abração

I

Opa, eu tô usando postgres com o hibernate.
Por enquanto a única coisa que salva no banco é os recordes do jogo de quebra-cabeça.
As msgs do chat ficam em memória.

Já faz um tempinho que eu não mecho nele, 6 cadeiras na facul ta me quebrando…

J

huahauha
legal ivo…
oo que quer dizer 6 cadeiras??
eu nao compreender

mas eu vim ressussitar este post pq surgiu um problema cruellll que está tirando minhas noites de sono:

Todo mundo sabe que o GWT usa um shell especial que é shell da google
aquelas duas janelas uma com o stack trace e outro como um cliente…

alguem já configurou o gwt para rodar num browser comum como o Firefox ou o IE, ou então o Chrome?
pq eu criei um servidor especial para esta app…
instalei o jboss perfeitoo…
mas nao consegue rodar quando chamo a aplicação pelo endereçõ no browser…
eu gostaria que todas os componentes aparecesse no meu browser e não no shell especial do gwt

alguem tem alguma idéia?
algum link?
ou algum tutorial?
abração forte pra todo mundo

I

6 cadeiras = 6 disciplinas = 6 matérias

Sobre o rodar o gwt no browser concerteza é possível. Vc tem que compilar usando o programa compile.cmd que ele gera. Amanhã se eu lembrar eu posto um workspace do eclipse aqui com um build do ant que compila para rodar no browser.

F

desculpa mas o que seria o GXT ?

W

Bom amigo, estamos desenvolvendo um aplicativo web-desktop com o gwt-ext http://www.gwt-ext.com. Aí tem um showcase bem interessante.
no projeto usamos hibernate, é bem seguro e bem tranquilo. Testamos o projeto com vários tipos de browsers e funcionou legal :smiley: mas ainda queremos testar no iphone (acho que é possível).
Tem toda aquela questão das classes que o gwt nao compila e tal (tudo que nao pertencer a pasta lang, util nao compila), só compila as classes que vêm com o gwt, mas nada que um delegate nao resolva.

até mais

J

interessante

projeto aqui tambem com hibernate…
como faz este processo de delegate para compilar as classes java lang?

to com outro problema tambem…

é um calendário em ingles

o padrão tem que ser portugues e nao há nada que me faça conseguir arrumar isso
ele ja busca mas o componente calendarioo (extend-property name=“locale” values=“pt_BR”)
tá em ingles
e agora dá um erro de locale algo que fala que ele nao consegue achar o set do locale e por isso ele vem null
que nao sei nem tenho ideia do que seja
algum ja teve este problema?

R

Apenas algumas coisas sobre o GWT e o GXT.
Bem, o que o Jota está mencionando não é gwt-ext que foi mencionado (www.gwt-ext.com), é uma versão do ExtJS feita para o GWT(www.extjs.com).
Quando ao hibernate com o gwt, quando se faz o uso de lazy, por exemplo, ocorre-se um problema de serialização, pois algumas classes do hibernate não são serializaveis, como o LazyInit por exemplo. Para sanar esse problema existe o Hibernate4Gwt, que ao contrário do hibernate, não trabalha com a persistência mas sim na camada de serviço do gwt.
Vale ressaltar que o h4gwt faz uma cópia dos objetos que saem do lado servidor para o cliente, removendo os “lazy” das entidades. Algumas implementações, essas entidade são uma extensão de um BaseModel, que possuí alguns métodos que devem ser definidos para aparecer corretamente na tela [set(“nome_campo”,objeto_valor_campo)].
Como o hibernate define por reflexão (me corrijam se estiver errado) os atributos recuperados da base de dados, esses parâmetros não são definidos, o que faz com que os campos apareçam como “null” na tela. O h4gwt ao fazer essa copia dos elementos, força a definição dos valores pelos métodos de acesso e lá deve ser colocado o método set que mencionei acima.
Uma das coisas que reparei que acontece é o fato de alguns componentes do gxt (extjs) não possuem os métodos set, fazendo com que ao passar pelo h4gwt seus valores não sejam definidos, gerando muitos problemas. A solução ali é gerar um “novo” componente, com todos os métodos para definir valores.
Quanto a tradução, existe a opção de adicionar o arquivo de tradução junto a biblioteca do gwt/gxt, na verdade, não sei outra maneira, mas essa solução com certeza não é algo que me agrada.

Minha opinião sobre o assunto é que, apesar de “facilitar” a construção de sites utilizando ajax, o uso do gxt (extjs) está meio longe de ser algo realmente funcional e 100%, digo isso pois existem várias diferenças em o ExtJS e o Gxt, o que na verdade não era pra ocorrer. Quanto ao Gwt puro, não é lá muito ruim, é difícil no começo, pegar o jeitão das coisas, mas depois que se entende leva-se até que legal as coisas, tem lá suas limitações, mas nada mortal (=

Desculpem se me enrolei todo ali, mas to meio na correria aqui, qualquer coisa, pergunte-me e respondei assim que possível.

Abraços

M

Dae pessoal…

andei procurando algumas coisas na internet e juntando tudo fiz um exemplo de GWT Hibernate.
Funcionou! Não sei se é a melhor maneira do mundo!

postei em http://goo.gl/ZTZ6

Qualquer dúvida ou sugestão será muito bem vinda!

Abraço

J

Muito bom rapatão
obrigado
XD

vlw!

V

Opa estou usando Gwt + Gwt-Ext com hibernate usando o Gilead(Tambem conhecido como hibernate4gwt)…to apanhando um pouco mas ja consgo fazer muita coisa, so seguir tutorial que consegue de boa!

http://www.gwt-ext.com/

http://noon.gilead.free.fr/gilead/

A

Atualmente trabalho em um projeto onde usamos GWT, GWT-EXT, Hibernate e SqlServer 2005.
A principal desvantagem do gwt está na parte da serialização, visto que o mesmo consegue serializar apenas algumas classes.No projeto que estamos desenvolvendo, criamos um controlador para centralizar todas as chamadas RPC da view e criamos uma estrutura para facilitar a criação de chamadas RPC.Em relação ao Hibernate, o único problema com qual nos deparamos foi em relação ao lazy porque o GWT não serializa o proxy gerado pelo Hibernate.Trabalhamos com xml ao invés de annotations pelo fato de o Gwt ter suporte apenas a java 1.4.A versão mais recente do gwt fornece suporte a java 1.5.
Acho o framework bem legal, produtivo a partir do momento que se conhece bem o framework e se tem uma estrutura montada(MVC), bom para quem não tem muita facilidade(criatividade) para criar interfaces (GWT-EXT).
O mesmo autor do projeto GWT-EXT, EXT-GWT, EXTJS, acaba de lançar um novo wrapper para se trabalhar com gwt - SmartGwt. http://serathiuk.com/blog/?p=38

A

Amigos, tambem estou iniciando no estudo do GWT. Estou pensando em utiliza-lo em um projeto que iniciarei daqui a algumas semanas, pois o cliente está com uma frescurite que querer a interface “o mais desktop possivel”… :roll:. Ainda nao fiz nenhum teste, mas pretendo faze-lo logo, por enquanto só estudei documentações.

Uma dúvida que nao consegui sanar pela documentaçao…exemplo: eu tenho uma página x e vou trabalhar ela na minha classe x que será o meu EntryPoint. Mas se eu tiver uma pagina y que quero trabalhar com a classe y, como devo proceder?Reformulando a pergunta: é possivel trabalhar com mais de um EntryPoint?

Obrigado!!!

M

alias:
Amigos, tambem estou iniciando no estudo do GWT. Estou pensando em utiliza-lo em um projeto que iniciarei daqui a algumas semanas, pois o cliente está com uma frescurite que querer a interface “o mais desktop possivel”… :roll:. Ainda nao fiz nenhum teste, mas pretendo faze-lo logo, por enquanto só estudei documentações.

Uma dúvida que nao consegui sanar pela documentaçao…exemplo: eu tenho uma página x e vou trabalhar ela na minha classe x que será o meu EntryPoint. Mas se eu tiver uma pagina y que quero trabalhar com a classe y, como devo proceder?Reformulando a pergunta: é possivel trabalhar com mais de um EntryPoint?

Obrigado!!!

Página y != classe y != Entry Point y

Numa aplicação GWT bem modelada, você tem apenas 1 entry point e vai trocando as informações exibidas na página; o conceito de “página” não existe (tá mais pra “janelas”, “panels”, depende de como implementar).

Nada impede que você abra uma página html (jsp/asp/whatever) dentro de um campo da aplicação, entretanto…

A

MarceloS:
alias:
Amigos, tambem estou iniciando no estudo do GWT. Estou pensando em utiliza-lo em um projeto que iniciarei daqui a algumas semanas, pois o cliente está com uma frescurite que querer a interface “o mais desktop possivel”… :roll:. Ainda nao fiz nenhum teste, mas pretendo faze-lo logo, por enquanto só estudei documentações.

Uma dúvida que nao consegui sanar pela documentaçao…exemplo: eu tenho uma página x e vou trabalhar ela na minha classe x que será o meu EntryPoint. Mas se eu tiver uma pagina y que quero trabalhar com a classe y, como devo proceder?Reformulando a pergunta: é possivel trabalhar com mais de um EntryPoint?

Obrigado!!!

Página y != classe y != Entry Point y

Numa aplicação GWT bem modelada, você tem apenas 1 entry point e vai trocando as informações exibidas na página; o conceito de “página” não existe (tá mais pra “janelas”, “panels”, depende de como implementar).

Nada impede que você abra uma página html (jsp/asp/whatever) dentro de um campo da aplicação, entretanto…

Obrigado pelos esclarecimentos :wink:

Estou estudando um exemplo que segue essa linha que voce disse…o cara fez como uma aplicação swing mesmo (pelo pouco que conheço de swing, espero que me perdoem caso esteja falando besteira :lol: ), a partir de um unico EntryPoint ele monta a tela e depois trabalha encima dos listeners e dos eventos…é esse mesmo o conceito?Achei muito bacana essa arquitetura aplicada a um projeto web…

M

alias:
Obrigado pelos esclarecimentos :wink:

Estou estudando um exemplo que segue essa linha que voce disse…o cara fez como uma aplicação swing mesmo (pelo pouco que conheço de swing, espero que me perdoem caso esteja falando besteira :lol: ), a partir de um unico EntryPoint ele monta a tela e depois trabalha encima dos listeners e dos eventos…é esse mesmo o conceito?Achei muito bacana essa arquitetura aplicada a um projeto web…

Exato!! Um único JFrame e vários panels/tabs/dialogs dentro… :slight_smile:

A

Legal…alguem sabe dizer se para desenvolver GWT no Eclipse é necessário algum plugin?

e mais uma…uma pergunta meio obvia, mas que ainda está um pouco nebuloso pra mim…como é codigo Java, a aplicação precisa rodar encima de algum web-container?um tomcat da vida…?

M

Java Magazine Edição 64 Fala sobre GWT-ext…

[]'s

P

Uso GWT num projeto lá do trabalho.

A

Uso o plugin Cypal Studio para o eclipse, que ajuda na criação da estrutura do projeto, do EntryPoint e dos serviços remotos.O plugin é bem simples e é free.
É necessário um container web (TomCat, JBoss) para rodar o aplicativo

G

O complicado que eu achei foi a tentativa de rodar a aplicação gerada em um servidor externo. Mas também pesquisei muito pouco sobre essa ferramenta.

A

Para rodar aplicativos Gwt em um servidor basta apontar para o servlet da aplicação configurando o arquivo web.xml que fica dentro da pasta WEB-INF, gerar um WAR e dar o deploy no servidor.Lembrando que /server-controler é o path que referencia o servlet que é configurado no arquivo algumaCoisa.gwt.xml que fica no pacote …public

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xmlns="http://java.sun.com/xml/ns/javaee" 
		 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		 id="WebApp_ID" 
		 version="2.5">
<display-name>GWT</display-name>
	<description>
		Descritor do contexto de desenvolvimento.
	</description>
		 
  <servlet>
    <servlet-name>server-controler</servlet-name>
    <servlet-class>br.com.server.ServletControlerImpl</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>server-controler</servlet-name>
    <url-pattern>/server-controler</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>ServletControler.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
A

Essa configuração é de uma aplicação onde eu estva usando Gwt 1.4.Funciona perfeitamente.
Funciona também para Gwt 1.5 e 1.6.

J

Bom pessoal, estou ressussitando este post para informar

GWT é um sucesso, a usabilidade na empresa aqui é baseada no GWT…

Abraço e vlw pelas contribuições!!!

D

opa…
to usando o GWT e gostando…

mas ele tem umas chatices com Hibernate…
alguém tem alguma solução para chamadas RPC onde retorna um @Entity com relacionamento para outros @Entity? Que não seja com o Gilead (antigo hibernate4gwt) que achei meio gambiarrento…

parece que o GWT nao consegue serializar uma entidade com um list de outra entidade… mesmo que relacionamento esteja como EAGER…

abraços!

D

Se as classe que vc tiver dentro do list for serializable vai funcionar corretamente. Como ele transforma tudo em javascript ele precisa dos fontes e que as classes sejam serializable, se vc tomar cuidado com isso vai compilar normalmente.

[]s

B

Up!

Galera realmente eu tbm tenho usado o GWT e tenho sentido um pouco de dificuldade no inicio pra mudar o conceito de pagina e actions…
no GWT as coisas sao mais simples…so que demora um pouco pra vc pegar…tem q ter paciencia! :slight_smile:

um abs

S

Não. O GWT já vem com o Tomcat (>= 1.5) ou Jetty (<= 1.6) para rodar a aplicação em HostedMode

S

GWTExt e Ext-GWT são duas coisas diferentes e justamente por isso o segundo ganhou este apelido carinhoso. Ele é desenvolvido pela própria equipe do ExtJs.

A integração com Hibernate não é tão simples, tendo em vista os problemas de Lazy loading. Existe uma solução para tal que é o Gilead, uma evolução do antigo hibernate4gwt.

Abs

S
andrezaaoo:
Para rodar aplicativos Gwt em um servidor basta apontar para o servlet da aplicação configurando o arquivo web.xml que fica dentro da pasta WEB-INF, gerar um WAR e dar o deploy no servidor.Lembrando que /server-controler é o path que referencia o servlet que é configurado no arquivo algumaCoisa.gwt.xml que fica no pacote ...public
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xmlns="http://java.sun.com/xml/ns/javaee" 
		 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		 id="WebApp_ID" 
		 version="2.5">
<display-name>GWT</display-name>
	<description>
		Descritor do contexto de desenvolvimento.
	</description>
		 
  <servlet>
    <servlet-name>server-controler</servlet-name>
    <servlet-class>br.com.server.ServletControlerImpl</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>server-controler</servlet-name>
    <url-pattern>/server-controler</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>ServletControler.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Só está disponível a partir da versão 1.6.

A versão 1.5 < realmente exigia um pouco mais de esforço para rodar a aplicação em HostedMode em outro container que não o nativo do GWT para tal.

Acredito que este que é o problema do nosso camarada @Grinvon

Criado 13 de agosto de 2008
Ultima resposta 5 de mai. de 2009
Respostas 34
Participantes 18