Problemas para popular um DataGrid e fazer um Login (Java+Flex)  XML
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Autor Mensagem
denisrodrigues
HelloWorld

Membro desde: 15/09/2009 16:39:39
Mensagens: 11
Offline

Olá,

Sou iniciante e estou tendo problemas para popular um datagrid, utilizando dados do banco, já tentei de várias maneiras mas não dá certo, nesse código abaixo, estou tentando fazer de duas formas diferentes,



Classe que espelha modelo java(atributos e métodos)


Minha classe controladora vagas



Meu DAOVaga


Quando eu aperto o botão pesquisar, não acontece nada, nem muda de estado, no segundo click fica branco o panel, não consigo pesquisar vaga e nem profissionais

Agora o meu outro problema é o Login, esse eu tô mais perdido ainda

Até agora eu fiz isso








Apesar de ter já feito isso, acredito que tem bastante coisa errada, principalmente no dao e controladora, e não sei como continuar daqui para frente, como criar um método login e fazer a sessão, principalmente na parte do flex, se alguém pode me dar uma luz

O tópico ficou meio grandinho, mas eu tô começando agora na raça, eu tenho que entregar esse projeto amanhã ou sexta na faculdade, ainda bem que data da entrega foi prorrogada umas duas vezes, porque tô bem enrolado

Obrigado desde já.


This message was edited 2 times. Last update was at 16/12/2009 16:37:21

henrique.marino
Thread.start()

Membro desde: 29/09/2009 18:12:26
Mensagens: 37
Offline

Olá Denis, bem vindo ao mundo do Flex!

Para começar gostaria de te indicar a documentação do Flex (shift + F2 na perspectiva Flex te leva ao help!) que é muito boa.
Aplicações como o Tour de Flex http://www.adobe.com/devnet/flex/tourdeflex/ tb são legais para quem esta começando...

Antes de mais nada, uma pergunta para vc. Alguma vez vc já conseguiu fazer um hello world Flex + Java? Digo isso pois seria mais fácil começar com alguns conceitos como configurar o blaze e etc.

Se vc já fez, sugiro que vc crie uma aplicação (Flex App) nova para testar a comunicação do Flex e Java. Por exemplo, crie um método no java que vai retornar uma string...


[]s,

This message was edited 1 time. Last update was at 16/12/2009 16:55:02


Henrique F. Marino

www.dclick.com.br
blog.dclick.com.br
denisrodrigues
HelloWorld

Membro desde: 15/09/2009 16:39:39
Mensagens: 11
Offline

Tô um pouco mais adiante

A conexão com java está ok, aplicação já está fazendo inserções no banco de dados, é uma rede social, no momento está com 40 classes java, mas nesse semestre vou entregar apenas uma parte, a programação em java em si está bastante adiantada, uns 70%, o maior problema é a parte em flex, no projeto há algumas coisas em flex funcionando, como comboBox, states, alerts personalizados e mais algumas coisas

Mas eu não tenho experiência em java e nem em flex, mas estou me virando, se alguém puder me ajudar resolver esses problemas, ficaria agradecido.
henrique.marino
Thread.start()

Membro desde: 29/09/2009 18:12:26
Mensagens: 37
Offline

Denis, bom saber que estamos com a integração entre java e flex ok!..

Então vamos por parte. Vou descrever algumas coisas que eu faria para achar o erro...

1) Os datagrids não preenchem:

A primeira coisa que eu faria seria colocar um tratamento de erro para as chamadas do RemoteObject. Veja se está ocorrendo algum erro na chamda do método
A chamada DAOVaga.buscarVaga, não deveria ser DAOVaga.buscarVaga()? Além disso, pelo que pude perceber, o metodo no java espera receber um int, não? Ou tem sobrecarga e vc não colocou o código?
Verifique se a chamada do Flex está chegando no método buscarVaga do Java, isso ocorre? Se sim, garanta que o retorno deste método volta o que vc está esperando...
Você já colocou um breakpoint na função mostrarVagas e ver o que vem em evt.result?
Tome cuidado com o cast com o operador "as", se a classe não for a mesma o resultado do cast será null, e não dará nenhum erro...

2) Os states não funcionam..

Não consegui ver a declaração dos states...

3) O método de login:

Bom, primeiro vamos esquecer a sessão, vamos fazer o login funcionar. Para isso, o retorno do java dever ser, por exemplo um User ou até mesmo void. Ai vc pode se perguntar, mais se não retorna nada, como saberei que ele está logado??? Simplesmente pelo fato de vc capturar no Flex o evento result.
Para fazer com que seja descoberto no Flex que a autenticação falhou, simplesmente da um throw de uma exception e no flex capture o evento fault...

Acho que já é bom para começar...

Espero ter te ajudado, ainda tem algumas coisas no seu código que precisam melhorar, como por exemplo, não é necessário instanciar outro RemoteObject para cada metodo java... mais vamos por parte, depois complementamos isso...

[]s,

This message was edited 1 time. Last update was at 16/12/2009 23:25:55


Henrique F. Marino

www.dclick.com.br
blog.dclick.com.br
denisrodrigues
HelloWorld

Membro desde: 15/09/2009 16:39:39
Mensagens: 11
Offline

Eu coloquei um breakpoint na minha mxml e fiz um debug e deu esse erro, algum problema com a variavel vagas


Em relação () do buscarVagas, eu coloquei mas não deu resultado
Sobre a busca usando int, é usado o id da vaga
Em relação ao states, não é problema neles, mas sim no grid(buscarVagas), porque quando eu tiro o dataprovider do datagrid, mostra ele perfeitamente
Eu vou fazer um fault para tratar os erros
Sobre "Verifique se a chamada do Flex está chegando no método buscarVaga do Java, isso ocorre? Se sim, garanta que o retorno deste método volta o que vc está esperando... ", como faço isso, um debug?

Valeu pela ajuda.

henrique.marino
Thread.start()

Membro desde: 29/09/2009 18:12:26
Mensagens: 37
Offline

1) dataProvider="(vagas)", não deveria ser dataProvider="{vagas}"? ({} ao invés de ())?
2) não consegui ver vc passando o id na chamanda da função buscarVagas();
3) Para degubar o java, inicie o server dentro do eclipse e coloque um break no código java. Outra forma fácil é colocar um sysout para indicar que chegou no método e outro para indicar a quantidade de objetos retornados, por exemplo.

[]s,

Henrique F. Marino

www.dclick.com.br
blog.dclick.com.br
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Eu ainda acho que você deveria começar por um HelloWorld. Tem erros básicos aí que você ia entender melhor começando por coisas simples.
denisrodrigues
HelloWorld

Membro desde: 15/09/2009 16:39:39
Mensagens: 11
Offline

Comecei a tentar fazer do mesmo jeito que eu fiz o inserir, eu entendi melhor dessa forma, tanto vaga e profissional a implementação é igual, só muda que é um busca por int e outro por string


Eu tive um pequeno avanço, mas como eu faço para buscar todos os meus profissionais sem passar passar um e-mail ou id para busca, como está no meu método buscar no DAO, quando eu faço assim controladoraProfissional.buscar(profissionais);
Dá esse erro no TomCat ""exception.ImpossivelCompletarTarefaException: Não existe um Profissdional cadastrado com este E-Mail: null""at negocio.FachadaProfissional.buscarProfissional(FachadaProfissional.java:39)
at control.ControladoraProfissional.buscar(ControladoraProfissional.java:42)

O método tá percorrendo controladora>fachada> mas esbarra no método buscar

Quando não passo nada, controladoraProfissional.buscar(); dá o seguinte erro no flash
[RPC Fault faultString="Cannot invoke method 'buscar'." faultCode="Server.ResourceUnavailable" faultDetail="0 arguments were sent but 1 were expected."], eu criei o método fault, mas onde eu coloco no método pesquisar

Eu já fiz o "Hello World!", não sei se sou meio burrinho, porque não estou achando esses erros básicos

This message was edited 1 time. Last update was at 17/12/2009 13:58:12

AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Está usando SQL mesmo ou Hibernate? Se for SQL mesmo, crie outro método no Java que vai seguir "SELECT FROM NOMEDATABELA", e retorna a lista de todos os objetos (jeito ruim, mas acho que você não tá diferenciando).

Se for Hibernate, procure sobre a classe Criteria. Você só vai ter que passar a classe que quer buscar e o hibernate vai retornar.

[]'s

This message was edited 2 times. Last update was at 17/12/2009 14:23:09

felipedamiani
JavaEvangelist
[Avatar]

Membro desde: 07/10/2006 17:38:46
Mensagens: 382
Localização: Braço do Norte / Tubarão - SC
Offline

denisrodrigues wrote:Quando não passo nada, controladoraProfissional.buscar(); dá o seguinte erro no flash
[RPC Fault faultString="Cannot invoke method 'buscar'." faultCode="Server.ResourceUnavailable" faultDetail="0 arguments were sent but 1 were expected."]...


A própria descrição do erro já está dizendo, no java o método espera um parametro, e no flex tais tendando chamar este método sem passar nenhum parametro.

This message was edited 1 time. Last update was at 17/12/2009 16:25:35


Felipe Damiani
[Email] [WWW] [MSN]
denisrodrigues
HelloWorld

Membro desde: 15/09/2009 16:39:39
Mensagens: 11
Offline

Eu estou usando sql, fiz outro método para selecionar todos objetos

Continua não aparecendo nada no grid, tô tendo problemas com o Cast
[RPC Fault faultString="java.lang.ClassCastException : java.util.ArrayList cannot be cast to modelo.Profissional"

O pior que eu não consigo debugar, quando cai no ((Profissional) listProfissionais).setNome(set.getString("nome")); dá um problema

InvocationTargetException.<init>(Throwable) line: not available
JavaAdapter.invoke(Message) line: 440
Source not found. A tela fica branca e aparece um botão "Edit Source Lookup Path..."

Eu não consigo dubugar nenhuma variavel, tanto no java , quanto no flex, que dá esse erro, é uma alguma configuração errada no Eclipse?

This message was edited 1 time. Last update was at 17/12/2009 23:06:44

AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Cara, esses erros que você está reportando desde o início são erros extremamente básicos. Portanto, creio que você deveria estudar muita coisa antes de partir pra isso. Você já trabalhou com Hibernate ou com JDBC mesmo? Vá por exemplos mais básicos, o caminho vai ser bem menos doloroso.

Mas se você quiser continuar insistindo, 1:

Esse erro de casting é porquê você está tentando converter a listProfissionais em um objeto de profissional! Não tem como converter uma lista em um tipo menos genérico como esse. O certo é você adicionar elementos à lista, e não tentar converter.

Sobre esse InvocationTargetException é porquê você está querendo debugar dentro do arquivo já deployado. Não há como debugar usando os bytecodes. Você tem que clicar nesse botão "Edit source lookup path" e em seguida escolher o teu projeto.

Mas vá por mim, são coisas extremamente básicas que está errando, comece por algo mais simples, até mesmo em JDBC e em Hibernate.

[]'s
 
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team