Problemas com JSF e Bean (RESOLVIDO)

[b]Ola pessoal, estou tendo problemas com a implementação de um sistema.
Bati a cabeça o final de semana inteiro e não consegui resolvê-lo. Espero que possam me ajudar.
Estou trabalhando com alguns Design Patterns nos codigos, requisito do sistema, criei as seguintes classes:

FuncionarioBean

package Controller;

import Dao.FuncionarioDAO;
import FactoryMethod.FactoryDAO;
import Interface.IFuncionarioDAO;
import Model.Funcionario;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.swing.Action;

/**
 *
 * @author VIRTUALWEB
 */
@ManagedBean
@SessionScoped
public class FuncionarioBean implements Serializable{

    // Contrutora da Classe
    public FuncionarioBean() {
    }
    
    private Funcionario funcionario = new Funcionario();
    private List<Funcionario> listaFuncionario = new ArrayList();

    // Getters e Setters
    public Funcionario getFuncionario() {
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public List<Funcionario> getListaFuncionario() {
        return listaFuncionario;
    }

    public void setListaFuncionario(List<Funcionario> listaFuncionario) {
        this.listaFuncionario = listaFuncionario;
    }
    
    // Métodos    
    public void salvar(){

        IFuncionarioDAO dao = (IFuncionarioDAO) FactoryDAO.creatObject(Funcionario.class);
        dao.Salvar(funcionario);   
        
        listaFuncionario.add(funcionario);
        funcionario = new Funcionario();
    }
}

FuncionarioDAO

package Dao;

import FactoryMethod.FactoryConnection;
import Interface.IFuncionarioDAO;
import Model.Funcionario;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


public class FuncionarioDAO implements IFuncionarioDAO {
    
    private Connection conexao;
    private PreparedStatement comando;
    private ResultSet rset;   
    private String tabela_bd = "tb_funcionario";
    
    /**
     * Construtora da Classe que inicializa a conexao com
     * o banco de dados mysql através do parâmetro zero.
     */
    public FuncionarioDAO(){
        this.conexao = FactoryConnection.conexao(0);
    }
    
   /**
    * Método para inserir funcionários no banco de dados
    */
    @Override
    public void Salvar(Funcionario F) {
        
        // String SQL para inserção no bd
        String sql  = " INSERT "
                    + " INTO " + this.tabela_bd 
                    + "( HIS_ID, "
                    + "  CAR_ID, "
                    + "  EMP_ID, "
                    + "  ADM_NOME, "
                    + "  ADM_SOBRENOME, "
                    + "  ADM_DTNASCIMENTO, "
                    + "  ADM_EMAIL, "
                    + "  ADM_TELEFONE, "
                    + "  ADM_LOGIN, "
                    + "  ADM_SENHA, "
                    + "  ADM_NIVEL ) "
                    + " VALUES(?,?,?,?,?,?,?,?,?,?,?)";
        
        try {
                this.comando = this.conexao.prepareStatement(sql);
                
                this.comando.setInt   (1,  F.getIdHistorico());
                this.comando.setInt   (2,  F.getIdCargo());
                this.comando.setInt   (3,  F.getIdEmpresa());
                this.comando.setString(4,  F.getNome());
                this.comando.setString(5,  F.getSobreNome()); 
                this.comando.setString(6,  F.getNascimento());
                this.comando.setString(7,  F.getEmail());
                this.comando.setString(8,  F.getTelefone());
                this.comando.setString(9,  F.getLogin());
                this.comando.setString(10, F.getSenha());
                this.comando.setInt   (11, F.getNivel());

                this.comando.execute();
                this.comando.close();

                JOptionPane.showMessageDialog(null,"Funcionario inserido com sucesso!");
                              
        } catch (SQLException u) {
            JOptionPane.showMessageDialog(null,"Erro ao inserir o Funcionário!");
            throw new RuntimeException(u);
        }
    }
    
    @Override
    public void Editar(Funcionario F) {

        String sql  = " UPDATE " + this.tabela_bd 
                    + " SET "                    
                    + " HIS_ID           = ?, "
                    + " CAR_ID           = ?, "
                    + " EMP_ID           = ?, "
                    + " ADM_NOME         = ?, "
                    + " ADM_SOBRENOME    = ?, "
                    + " ADM_DTNASCIMENTO = ?, "
                    + " ADM_EMAIL        = ?, "
                    + " ADM_TELEFONE     = ?, "
                    + " ADM_LOGIN        = ?, "
                    + " ADM_SENHA        = ?, "
                    + " ADM_NIVEL        = ?  "
                    + " WHERE ADM_ID     = ?  ";

        try {
                this.comando = this.conexao.prepareStatement(sql);
              
                this.comando.setInt   (1,  F.getIdHistorico());
                this.comando.setInt   (2,  F.getIdCargo());
                this.comando.setInt   (3,  F.getIdEmpresa());
                this.comando.setString(4,  F.getNome());
                this.comando.setString(5,  F.getSobreNome()); 
                this.comando.setString(6,  F.getNascimento());
                this.comando.setString(7,  F.getEmail());
                this.comando.setString(8,  F.getTelefone());
                this.comando.setString(9,  F.getLogin());
                this.comando.setString(10, F.getSenha());
                this.comando.setInt   (11, F.getNivel());
                this.comando.setInt   (12, F.getIdFuncionario());
                
                this.comando.execute();
                this.comando.close();

                JOptionPane.showMessageDialog(null,"Funcionario Editado com sucesso!");
                              
        } catch (SQLException u) {
            JOptionPane.showMessageDialog(null,"Erro ao editar o Funcionário!");
            throw new RuntimeException(u);
        }
    }

    /**
     * Metodo Excluir com utilização de Store Procedures
     * @param F 
     */
    @Override
    public void Excluir(Funcionario F) {
       
        CallableStatement cs;
        
        try {
            cs = this.conexao.prepareCall ( "{call excluir_Funcionario(?)}" );
            cs.setInt(1, F.getIdFuncionario());
            cs.execute();
            cs.close();
            JOptionPane.showMessageDialog(null,"Funcionario Ecluído com sucesso!");
        } 
        catch (SQLException ex) {
            Logger.getLogger(FuncionarioDAO.class.getName()).log(Level.SEVERE, null, ex);
        } 
    }

    
    /**
     * Método que cria uma lista dos funcionários cadastrados no sistema.
     * @return Lista de funcionarios
     */
    @Override
    public List<Funcionario> Listar(){
        
        String sql = "SELECT * FROM " + this.tabela_bd; 
        List<Funcionario> ListaFuncionario = new ArrayList<Funcionario>();

        try {

               this.comando = this.conexao.prepareStatement(sql);
               this.rset    = this.comando.executeQuery();

               //Enquanto existir dados no banco de dados, faça
               while(this.rset.next()){

                   Funcionario F = new Funcionario();
                   
                   F.setIdFuncionario(this.rset.getInt("ADM_ID"));
                   F.setIdCargo(this.rset.getInt("CAR_ID"));
                   F.setIdHistorico(this.rset.getInt("HIS_ID"));
                   F.setIdEmpresa(this.rset.getInt("EMP_ID"));
                   F.setNome(this.rset.getString("ADM_NOME"));
                   F.setSobreNome(this.rset.getString("ADM_SOBRENOME"));
                   F.setNascimento(this.rset.getString("ADM_DTNASCIMENTO"));
                   F.setEmail(this.rset.getString("ADM_EMAIL"));
                   F.setTelefone(this.rset.getString("ADM_TELEFONE"));
                   F.setLogin(this.rset.getString("ADM_LOGIN"));
                   F.setSenha(this.rset.getString("ADM_SENHA"));
                   F.setNivel(this.rset.getInt   ("ADM_NIVEL"));

                   //Adicionando os dados do funcionário a lista de funcionarios
                   ListaFuncionario.add(F);
                   
               }
           }catch (SQLException u) {            
                JOptionPane.showMessageDialog(null,"Erro ao Ler os dados do Funcionário!");
                throw new RuntimeException(u);            
           }
        
        return ListaFuncionario;
    }
    
    @Override
    public void Pesquisar(Funcionario F) {
        
        
    }   

}

IFuncionarioDAO

package Interface;

import Model.Funcionario;
import java.util.List;

public interface IFuncionarioDAO {
    
    public void Salvar(Funcionario F);
    public void Editar(Funcionario F);
    public void Excluir(Funcionario F);
    public void Pesquisar(Funcionario F);
    List<Funcionario> Listar();    
}

FactoryDAO - Cria a instancia de um objeto



package FactoryMethod;


/**
 * Utiliza o Design Patterns Factory Method definindo uma maneira padrão
 * de criar objetos.
 * 
 * @author Livio Bruno de Oliveia
 * @version 1.0
 */
public class FactoryDAO {

    /**
     * Método estático que retorna a instância de uma classe
     * passada por parâmetro
     * @param classobjeto classe a ser instanciada.
     * @return instância da classe passada por parâmetro
     */
    public static Object creatObject(Class classobjeto)  {
        
        try
        {
            Class cls = Class.forName("Dao." + classobjeto.getSimpleName() + "DAO");
            return cls.getConstructor().newInstance();
        }
        catch(Exception e)
        {
            
        }
        return null;
    }  

}

Index.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form> 
            <h:panelGrid > 
                <h:outputText value="id historico" /> 
                <h:inputText value="#{funcionarioBean.funcionario.idHistorico}" /> 
                <h:outputText value="id empresa" /> 
                <h:inputText value="#{funcionarioBean.funcionario.idEmpresa}" /> 
                
                <h:outputText value="id cargo" /> 
                <h:inputText value="#{funcionarioBean.funcionario.idCargo}" /> 
                <h:outputText value="nome" /> 
                <h:inputText value="#{funcionarioBean.funcionario.nome}" /> 
                
                <h:outputText value="sobrenome" /> 
                <h:inputText value="#{funcionarioBean.funcionario.sobreNome}" /> 
                <h:outputText value="Nascimento" /> 
                <h:inputText value="#{funcionarioBean.funcionario.nascimento}" /> 
                
                <h:outputText value="email" /> 
                <h:inputText value="#{funcionarioBean.funcionario.email}" /> 
                <h:outputText value="Telefone" /> 
                <h:inputText value="#{funcionarioBean.funcionario.telefone}" /> 
                
                <h:outputText value="login" /> 
                <h:inputText value="#{funcionarioBean.funcionario.login}" /> 
                <h:outputText value="senha" /> 
                <h:inputText value="#{funcionarioBean.funcionario.senha}" /> 
                
                <h:outputText value="nivel" /> 
                <h:inputText value="#{funcionarioBean.funcionario.nivel}" /> 
                
                <h:commandButton id="btnO" value="Enviar" type="submit" action="#{funcionarioBean.salvar}"/>
                
            </h:panelGrid> 
        </h:form> 
        
        <h:panelGrid>
            <h:dataTable id="tableFuncionario" value="#{funcionarioBean.listaFuncionario}" var="p" title="Pessoas Cadastradas" border="1" rows="10" >
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="NOME" />
                    </f:facet>
                    <h:outputText value="#{p.nome}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="SOBRENOME" />
                    </f:facet>
                    <h:outputText value="#{p.sobreNome}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Senha" />
                    </f:facet>
                    <h:outputText value="#{p.senha}"/>
                </h:column>
            </h:dataTable>
        </h:panelGrid>
        
    </h:body>
</html>

Bom estes são os código que julgo serem úteis para ajudar a resolver o problema.

PROBLEMA: Ao clicar no botão para castrar os dados no banco de dados recebo o erro:

rastreamento de pilha

javax.faces.el.EvaluationException: java.lang.NullPointerException
	em
	em com.sun.faces.application.ActionListenerImpl.processAction (ActionListenerImpl.java: 102)
	em javax.faces.component.UICommand.broadcast (UICommand.java: 315)
	em javax.faces.component.UIViewRoot.broadcastEvents (UIViewRoot.java: 794)
	em javax.faces.component.UIViewRoot.processApplication (UIViewRoot.java: 1259)
	em com.sun.faces.lifecycle.InvokeApplicationPhase.execute (InvokeApplicationPhase.java: 81)
	em com.sun.faces.lifecycle.Phase.doPhase (Phase.java: 101)
	em com.sun.faces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java: 118)
	em javax.faces.webapp.FacesServlet.service (FacesServlet.java: 593)
	em org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java: 1550)
	em org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java: 281)
	em org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java: 175)
	em org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java: 655)
	em org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java: 595)
	em org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java: 161)
	em org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java: 331)
	em org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 231)
	em com.sun.enterprise.v3.services.impl.ContainerMapper $ AdapterCallable.call (ContainerMapper.java: 317)
	em com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java: 195)
	em com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java: 860)
	em com.sun.grizzly.http.ProcessorTask.doProcess (ProcessorTask.java: 757)
	em com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java: 1056)
	em com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java: 229)
	em com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java: 137)
	em com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java: 104)
	em com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java: 90)
	em com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java: 79)
	em com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java: 54)
	em com.sun.grizzly.SelectionKeyContextTask.call (SelectionKeyContextTask.java: 59)
	em com.sun.grizzly.ContextTask.run (ContextTask.java: 71)
	em com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java: 532)
	em com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java: 513)
	em java.lang.Thread.run (Thread.java: 619)
Causada por: java.lang.NullPointerException
	em Controller.FuncionarioBean.salvar (FuncionarioBean.java: 54)
	em sun.reflect.NativeMethodAccessorImpl.invoke0 (Método nativo)
	em sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 39)
	em sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java: 25)
	em java.lang.reflect.Method.invoke (Method.java: 597)
	em com.sun.el.parser.AstValue.invoke (AstValue.java: 254)
	em com.sun.el.MethodExpressionImpl.invoke (MethodExpressionImpl.java: 302)
	em com.sun.faces.facelets.el.TagMethodExpression.invoke (TagMethodExpression.java: 105)
	em
	... 32 mais

Porém se eu barrar as linhas

IFuncionarioDAO dao = (IFuncionarioDAO) FactoryDAO.creatObject(Funcionario.class);
dao.Salvar(funcionario);  

não é gerado nenhum erro…

Podem me ajudar? Desculpe todos os códigos…
Grato desde já.

Coloca um try-catch nesse trecho:

IFuncionarioDAO dao = (IFuncionarioDAO) FactoryDAO.creatObject(Funcionario.class);  
dao.Salvar(funcionario); 

Boa noite raf4eve!

Coloquei um try catch mais não sei se foi o correto, segue abaixo:

public void salvar() throws Exception{

        try{
            IFuncionarioDAO dao = (IFuncionarioDAO) FactoryDAO.creatObject(Funcionario.class);
            dao.Salvar(funcionario);   

            listaFuncionario.add(funcionario);
            funcionario = new Funcionario();
        }  
        catch(Exception e){  
            System.out.println(e.getMessage());  
            throw new Exception (e.getMessage());  
        } 
    }

Gerou o erro

javax.faces.el.EvaluationException: java.lang.Exception
	em
	em com.sun.faces.application.ActionListenerImpl.processAction (ActionListenerImpl.java: 102)
	em javax.faces.component.UICommand.broadcast (UICommand.java: 315)
	em javax.faces.component.UIViewRoot.broadcastEvents (UIViewRoot.java: 794)
	em javax.faces.component.UIViewRoot.processApplication (UIViewRoot.java: 1259)
	em com.sun.faces.lifecycle.InvokeApplicationPhase.execute (InvokeApplicationPhase.java: 81)
	em com.sun.faces.lifecycle.Phase.doPhase (Phase.java: 101)
	em com.sun.faces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java: 118)
	em javax.faces.webapp.FacesServlet.service (FacesServlet.java: 593)
	em org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java: 1550)
	em org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java: 281)
	em org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java: 175)
	em org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java: 655)
	em org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java: 595)
	em org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java: 161)
	em org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java: 331)
	em org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 231)
	em com.sun.enterprise.v3.services.impl.ContainerMapper $ AdapterCallable.call (ContainerMapper.java: 317)
	em com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java: 195)
	em com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java: 860)
	em com.sun.grizzly.http.ProcessorTask.doProcess (ProcessorTask.java: 757)
	em com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java: 1056)
	em com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java: 229)
	em com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java: 137)
	em com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java: 104)
	em com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java: 90)
	em com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java: 79)
	em com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java: 54)
	em com.sun.grizzly.SelectionKeyContextTask.call (SelectionKeyContextTask.java: 59)
	em com.sun.grizzly.ContextTask.run (ContextTask.java: 71)
	em com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java: 532)
	em com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java: 513)
	em java.lang.Thread.run (Thread.java: 619)
Causada por: java.lang.Exception
	em Controller.FuncionarioBean.salvar (FuncionarioBean.java: 62)
	em sun.reflect.NativeMethodAccessorImpl.invoke0 (Método nativo)
	em sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 39)
	em sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java: 25)
	em java.lang.reflect.Method.invoke (Method.java: 597)
	em com.sun.el.parser.AstValue.invoke (AstValue.java: 254)
	em com.sun.el.MethodExpressionImpl.invoke (MethodExpressionImpl.java: 302)
	em com.sun.faces.facelets.el.TagMethodExpression.invoke (TagMethodExpression.java: 105)
	em
	... 32 mais

Coloca o stacktrace completo.

Me desculpe pela ignorância mais só consegui copiar o que mandei…
Qual a forma de copiar tudo?

Bom dia pessoal, alguém poderia me ajudar?
Precismo urgentemente resolver esse problema para prosseguir com o desenvolvimento do sistema.
Grato

Vai no Eclipse e cola todo o stacktrace,aparentemente tem mais log do que vc colocou.

Estou utilizando o netbeans…
Dei um debug nesta linha

dao.Salvar(funcionario);

o dao esta como nulo… o Engraçado é que seu setar os valores do funcionário direto dentro do método e depois chamar o dao ele funciona

Então se o DAO está nulo coloque um stacktrace no método que ele tá sendo criado,eu reparei que vc botou um catch vazio lá.

coloquei e ficou assim

public static Object creatObject(Class classobjeto)  {
        
        try
        {
            Class cls = Class.forName("Dao." + classobjeto.getSimpleName() + "DAO");
            return cls.getConstructor().newInstance();
        }
        catch(Exception e)
        {
             e.printStackTrace();   
        }
        return null;
    }  

Continua lançando a excessão e o dao ainda está nulo…

Alterei o método salvar para:

public void salvar() throws Exception{

        try{
            funcionario = new Funcionario(); 
        
            funcionario.setIdHistorico(1);
            funcionario.setIdCargo(1);
            funcionario.setIdEmpresa(1);
            funcionario.setNome("João");
            funcionario.setSobreNome("Henrique de Deus");
            funcionario.setNascimento("26/06/1984");
            funcionario.setEmail("bruno_osprimos@hotmail.com");
            funcionario.setTelefone("03133872666");
            funcionario.setLogin("newUser");
            funcionario.setSenha("teste");  
            funcionario.setNivel(6); 

            IFuncionarioDAO dao = (IFuncionarioDAO) FactoryDAO.creatObject(Funcionario.class);            
            dao.Salvar(funcionario); 
            
            listaFuncionario.add(funcionario);
            funcionario = new Funcionario();
            
            //FuncionarioDAO func = new FuncionarioDAO();
            //f.Salvar(funcionario);
        }  
        catch(Exception e){  
            System.out.println(e.getMessage());  
            throw new Exception (e.getMessage());  
        }
    }

Criei um arquivo java com o man e chamei o metodo salvar, os valores foram inseridos sem erro no bd…
Não consigo entender o porque de o dao ficar null quando o chamo de uma pagina xhtml e funcionar corretamente quando
o chamo de uma outra classe java…

Estou de volta com a solução do problema pessoal.

O que acontece é que quando estava criando as classes e métodos do banco de dados eu fazia testes de funcionamento através
do OptionPane.showMessageDialog() exibindo mensagens de erro ou sucesso. Para testes via console funcionava perfeitamente, porém ao debugar o sistema
percebi que chamadas vindas de uma pagina xhtml (meu caso), ao passar pela linha que continha o JOptionPane.showMessageDialog() gerava uma excessão entrando no catch,
não sei o porque do problema mais ao retirar todas as linhas que continham esse JOption o sistema funcionou…

Alguém sabe porque?

Nota: sou novo no fórum, não sei onde marcar o tópico como resolvido…
Grato

Edita a mensagem e coloca um [RESOLVIDO] no titulo do topico.