Problemas para popular um DataGrid e fazer um Login (Java+Flex)

11 respostas
D

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,

<mx:RemoteObject id ="DAOVaga" destination="DAOVaga">	
	<mx:method name="buscarVaga" result="mostrarVagas(event)"/>
</mx:RemoteObject>
	
	<mx:Script>
		<![CDATA[
		
		import mx.controls.Alert;
                                import mx.events.CloseEvent;
		import flash.net.URLRequest;
		import flash.net.navigateToURL;
		import mx.collections.ArrayCollection;
		import mx.rpc.remoting.mxml.RemoteObject;
		import mx.rpc.events.ResultEvent;
		import dominio.ProfissionalVO;
		                
        [Bindable]
        
        private var vagas:ArrayCollection = new ArrayCollection();
       
        public function pesquisarVaga(evt:MouseEvent): void {
            
       		DAOVaga.buscarVaga;
                 
		}
		
		public function mostrarVagas(evt:ResultEvent):void {
			
			vagas = evt.result as ArrayCollection;
			
		}
		
        private var profissionais:ArrayCollection = new ArrayCollection();
        
        public function pesquisarProfissionais(evt:MouseEvent) : void {
            
       		var controladoraProfissional:RemoteObject;
 
           	 	controladoraProfissional = new RemoteObject("controladoraProfissional");
           	 	controladoraProfissional.buscar();
                 
		}
		
		private function mostrarProfissionais(evt:ResultEvent):void{    
			
			if (evt.result != null){
				profissionais = (evt.result as ArrayCollection);
			
			}
		}
        ]]>


<mx:DataGrid x="0" y="0" height="388" width="645" fontSize="12" dataProvider="(vagas)" id="dgVagas" enabled="true" editable="false">
           <mx:columns>	
                    <mx:DataGridColumn headerText="Data" dataField="dataVaga" width="55"/>
                    <mx:DataGridColumn headerText="Código" dataField="id"width="58"/>
                    <mx:DataGridColumn headerText="Tipo" dataField="tipo" width="110"/>
                    <mx:DataGridColumn headerText="Descricao" dataField="descricao"/>
                    <mx:DataGridColumn headerText="Empresa" dataField="empresa" width="110"/>
                    <mx:DataGridColumn headerText="Salário" dataField="salario" width="68"/>
           </mx:columns>
</mx:DataGrid>
		
<mx:DataGrid x="0" y="0" width="645" height="388" id="dgProfissionais" dataProvider="profissionais" editable="false" enabled="true">
           <mx:columns>
	     <mx:DataGridColumn headerText="Nome" dataField="nome" width="120"/>
	     <mx:DataGridColumn headerText="Sobrenome" dataField="sobrenome" width="220"/>
	     <mx:DataGridColumn headerText="Sexo" dataField="sexo" width="75"/>
	     <mx:DataGridColumn headerText="Idade" dataField="idade" width="60"/>
	     <mx:DataGridColumn headerText="Profissão" dataField="profissao"/>
           </mx:columns>
</mx:DataGrid>

<mx:Button label="Pesquisar" fontSize="13" fontFamily="Arial" cornerRadius="7" y="297" x="486" id="btBuscarVagas" click="pesquisarVagas(event);currentState='stateVagas'"/>

<mx:Button label="Pesquisar" fontSize="13" fontFamily="Arial" cornerRadius="7" x="486" y="297" id="btBuscarProfissionais" 
click="pesquisarProfissionais(event);currentState='stateProfissionais'"/>

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

package dominio
{
	[RemoteClass(alias="modelo.Vaga")]
    
    [Bindable]
	public class VagasVO
	{
		public function VagasVO()
		{
		}
		
		public var tipo:String;
    
        public var cargo:String;
        
        public var descricao:String;
        
        public var dataVaga:String;
        
        public var salario:String;

	}
}

Minha classe controladora vagas

package control;

import exception.ImpossivelCompletarTarefaException;
import modelo.Vaga;
import negocio.FachadaVaga;

public class ControladoraVaga {
	
	public void inserir(Vaga vaga){
		
		FachadaVaga fachadaVaga = new FachadaVaga();
		try {
			fachadaVaga.inserirVaga(vaga);
		} catch (ImpossivelCompletarTarefaException e) {
			e.printStackTrace();
		}
	}
	
	@SuppressWarnings("unused")
	private void atualizar(Vaga vaga){
		
		FachadaVaga fachadaVaga = new FachadaVaga();
		try{
			fachadaVaga.atualizarVaga(vaga);
			
		} catch(ImpossivelCompletarTarefaException e){
		
		}
	}
	
	public void excluir(Vaga vaga){
		FachadaVaga fachadaEmpresa = new FachadaVaga();
		try{			
			fachadaEmpresa.excluirVaga(vaga);
		} catch(ImpossivelCompletarTarefaException e){
			e.printStackTrace();
		}
	}
	
	public void buscar(int id){
		FachadaVaga fachadaVaga = new FachadaVaga();
		try{			
			fachadaVaga.buscarVaga(id);
		} catch(ImpossivelCompletarTarefaException e){
			e.printStackTrace();
		}
	}
	
}

Meu DAOVaga

package persistencia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import modelo.Vaga;

public class DAOVaga {
   
	    private Connection conexao;
	    
	    private void obterConexao(){
	        try {
	            Class.forName("com.mysql.jdbc.Driver");
	            conexao = DriverManager.getConnection("jdbc:mysql://localhost/sirp", "root", "123");
	        } catch (ClassNotFoundException e) {
	            e.printStackTrace();
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	    }
	    
	    private void liberarConexao(){
	        try {
	            conexao.close();
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	    }    
	    
	    public void inserir(Vaga vaga){
	        obterConexao();
	        try {
	            PreparedStatement pstat = conexao.prepareStatement("INSERT INTO Vaga (tipo, cargo, experienciaExigida, descricao, dataVaga, salario) VALUES (?, ?, ?, ?, ?, ?)");
	            pstat.setInt(1, vaga.getId());
	            pstat.setString(2, vaga.getTipo());
	            pstat.setString(3, vaga.getCargo());
	            pstat.setString(4, vaga.getExperienciaExigida());
	            pstat.setString(5, vaga.getDescricao());
	            pstat.setString(6, vaga.getDataVaga());
	            pstat.setString(7, vaga.getSalario());
	            
	            pstat.executeUpdate();
	            
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        liberarConexao();
	    }
	    
	    public void atualizar(Vaga vaga){
	        obterConexao();
	        try {
	            PreparedStatement stat = conexao.prepareStatement("UPDATE Vaga SET tipo = ?, cargo = ?, experienciaExigida = ?, descricao = ?, dataVaga = ?, salario = ? WHERE id = ? ");
	            stat.setInt(1, vaga.getId());
	            stat.setString(2, vaga.getTipo());
	            stat.setString(3, vaga.getCargo());
	            stat.setString(4, vaga.getExperienciaExigida());
	            stat.setString(5, vaga.getDescricao());
	            stat.setString(6, vaga.getDataVaga());
	            stat.setString(7, vaga.getSalario());
	            
	            stat.executeUpdate();
	            
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        liberarConexao();
	    }
	    
	    public void excluir(Vaga vaga){
	        obterConexao();
	        try {
	            Statement stat = conexao.createStatement();
	            stat.executeUpdate("DELETE FROM Vaga WHERE id = '" + vaga.getId() + "' ");
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        liberarConexao();
	    }
	    
	    public Vaga buscarVaga(int i){
	        obterConexao();
	        try {
	            PreparedStatement stat = conexao.prepareStatement("SELECT * FROM Vaga WHERE id = ?");
	            stat.setInt(1, i);
	            ResultSet set = stat.executeQuery();
	            
	            
	            if (set.next()){
	            	Vaga vaga = new Vaga();
	            	vaga.setId(set.getInt("id"));
	            	vaga.setTipo(set.getString("tipo"));
	            	vaga.setCargo(set.getString("cargo"));
	            	vaga.setDescricao(set.getString("descricao"));
	            	vaga.setExperienciaExigida(set.getString("experienciaExigida"));
	            	vaga.setDataVaga(set.getString("dataVaga"));
	            	vaga.setSalario(set.getString("salario"));
	                stat = conexao.prepareStatement("SELECT count(*) FROM Vaga WHERE vaga_fk = ?");
	                stat.setInt(1, i);
	                set = stat.executeQuery();
	                
	                return vaga;
	            }
               	            
	            
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        liberarConexao();
	        return null;
	    }  
	
}

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

package control;

import exception.ImpossivelCompletarTarefaException;
import modelo.Login;
import negocio.FachadaLogin;

public class ControladoraLogin {
	
	public void logar(Login login){

		FachadaLogin fachadaLogin = new FachadaLogin();
		try {			
			if (fachadaLogin.ValidarLogin(login)==true);

                  //O que eu coloco aqui ?????
			
		} catch (ImpossivelCompletarTarefaException e) {
			e.printStackTrace();
		}
	}
	
}
package dominio
{
    [RemoteClass(alias="modelo.Login")]
    
    [Bindable]
    public class LoginVO
    {
        public function LoginVO()
        {
        }
        
        public var login:String;
    
        public var senha:String;
        
        public var nivel:String;

    }
}
package control;

import flex.messaging.FlexContext;
import flex.messaging.FlexSession;
import javax.servlet.http.*;


public class SessionCorrente {
	HttpServletRequest request;
	public FlexSession session;
 
	public SessionCorrente() {
		request = FlexContext.getHttpRequest(); 
		session = FlexContext.getFlexSession(); 
	}
 
	public String getSessionId() throws Exception {
		String s = new String();
		s = (String) session.getId();
		return s;
	}
 
	public String getHeader(String h) throws Exception {
		String s = new String();
		s = (String) request.getHeader(h);
		return h + "=" + s;
	}
}
package persistencia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import modelo.Login;

public class DAOLogin {
    
    private Connection conexao;
    
    private void obterConexao(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conexao = DriverManager.getConnection("jdbc:mysql://localhost/sirp", "root", "123");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    private void liberarConexao(){
        try {
            conexao.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
        
    public void inserir(Login login){
        obterConexao();
        try {
            PreparedStatement pstat = conexao.prepareStatement("INSERT Login (usuario, senha, nivel) VALUES (?, ?, ?)");
            pstat.setString(1, login.getLogin());
            pstat.setString(2, login.getSenha());
            pstat.setString(3, login.getNivel());
            
            pstat.executeUpdate();
                  
        } catch (SQLException e) {
            e.printStackTrace();
        }
        liberarConexao();
    }
    
    public void atualizar(Login login){
        obterConexao();
        try {
        	 PreparedStatement stat = conexao.prepareStatement("UPDATE Profissional SET nome = ?, sobrenome = ?, sexo = ?, idade = ?, dataNascimento = ?, estadoCivil = ?, profissao = ?, estudante = ?, fumante = ?, filhos = ?, moro = ?, hobby = ?, descricao = ?, telefoneCelular = ?, telefoneComercial = ?, telefoneResidencial = ?, webSite = ? WHERE email = ? ");
             
        	 stat.setString(1, login.getLogin());
             stat.setString(2, login.getSenha());
             stat.setString(3, login.getNivel());
             
             stat.executeUpdate();
                                       
        } catch (SQLException e) {
            e.printStackTrace();
        }
        liberarConexao();
    }
    
    public Login buscarLogin(String usuario, String senha){
        obterConexao();
        try {
            PreparedStatement stat = conexao.prepareStatement("SELECT * FROM Login WHERE usuario = ? and senha = ?");
            stat.setString(1, usuario);
            stat.setString(2, senha);
            ResultSet set = stat.executeQuery();
                                                   
            if (set.next()){
            	Login login = new Login();
            	login.setLogin(set.getString("login"));
            	login.setSenha(set.getString("senha"));
            	login.setNivel(set.getString("nivel"));
               
            return login;	
            }  
            
            } catch (SQLException e) {
                e.printStackTrace();
            }
            liberarConexao();
        return null;
        }
    
}

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á.

11 Respostas

H

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,

D

Tô um pouco mais adiante :slight_smile:

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.

H

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…

  1. Os states não funcionam…

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

  1. 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,

D

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

ReferenceError: Error #1065: A variável (vagas) não foi definida.
	at global/flash.utils::getDefinitionByName()
	at mx.utils::DescribeTypeCache$/describeType()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\utils\DescribeTypeCache.as:95]
	at mx.utils::ObjectUtil$/getClassInfo()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\utils\ObjectUtil.as:838]
	at mx.controls::DataGrid/generateCols()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\controls\DataGrid.as:2416]
	at mx.controls::DataGrid/collectionChangeHandler()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\controls\DataGrid.as:4180]
	at mx.controls.listClasses::ListBase/set dataProvider()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:1847]
	at mx.controls::DataGrid/set dataProvider()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\controls\DataGrid.as:1343]
	at SIRP/_SIRP_DataGrid1_i()[C:\eclipse\workspace\SIRP\flex_src\SIRP.mxml:120]
	at mx.core::DeferredInstanceFromFunction/getInstance()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\DeferredInstanceFromFunction.as:81]
	at mx.states::AddChild/createInstance()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\states\AddChild.as:335]
	at mx.states::AddChild/initialize()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\states\AddChild.as:347]
	at mx.states::State/http://www.adobe.com/2006/flex/mx/internal::initialize()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\states\State.as:199]
	at mx.core::UIComponent/initializeState()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:7481]
	at mx.core::UIComponent/commitCurrentState()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:7259]
	at mx.core::UIComponent/setCurrentState()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:7213]
	at mx.core::UIComponent/set currentState()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:4361]
	at SIRP/__btBuscarVagas_click()[C:\eclipse\workspace\SIRP\flex_src\SIRP.mxml:203]

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.

H
  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,

AUser

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.

D

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

public function pesquisarProfissionais(eventt:MouseEvent) : void {
            
            var controladoraProfissional:RemoteObject;  
            var profissional:ProfissionalVO = new ProfissionalVO();
            
       	controladoraProfissional = new RemoteObject("controladoraProfissional");
           	controladoraProfissional.buscar(profissional);
                 
		}
		
		private function mostrarProfissionais(event:ResultEvent):void{    
			
			if (event.result != null){
				profissionais = event.result as ArrayCollection;
			
			}
		}
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 :frowning:

AUser

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

felipedamiani

denisrodrigues:
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.

D
Eu estou usando sql, fiz outro método para selecionar todos objetos
public List <Profissional> listarGridProfissional(){
        obterConexao();
        List <Profissional> listProfissionais = new ArrayList<Profissional>();
        try {
            PreparedStatement stat = conexao.prepareStatement("SELECT * FROM Profissional");
            ResultSet set = stat.executeQuery();
              
            if (set.next()){
            	
            	((Profissional) listProfissionais).setNome(set.getString("nome"));
            	((Profissional) listProfissionais).setSobrenome(set.getString("sobrenome"));
            	((Profissional) listProfissionais).setSexo(set.getString("sexo"));
            	((Profissional) listProfissionais).setIdade(set.getInt("idade"));
            	((Profissional) listProfissionais).setProfissao(set.getString("profissao"));
            	
            }
            return listProfissionais;
                       
            } catch (SQLException e) {
                e.printStackTrace();
            }
            liberarConexao();
            return null;
}
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.(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?

AUser

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

Criado 16 de dezembro de 2009
Ultima resposta 18 de dez. de 2009
Respostas 11
Participantes 4