Java.sql.SQLException: Violação de protocolo em aplicação que usa hibernate e banco Oracle

Pessoal,

Quando tento executar uma aplicação Java desktop que usa hibernate e banco Oracle, o console do Netbeans 5.5 exibe a seguinte mensagem de erro :

10/12/2010 12:01:23 net.sf.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
10/12/2010 12:01:23 net.sf.hibernate.cfg.SettingsFactory buildSettings
WARNING: Could not obtain connection metadata
java.sql.SQLException: Violação de protocolo
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
        at oracle.jdbc.dbaccess.DBError.check_error(DBError.java)
        at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java)
        at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java)
        at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java)
        at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)
        at net.sf.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:101)
        at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
        at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1160)
        at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:794)
        at SCR.Scr.<init>(Scr.java:118)
        at SCR.Scr.main(Scr.java:724)

Segue, abaixo, o arquivo hibernate.properties

hibernate.dialect=net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@oracle.nti.ufpb.br:1521:UFPB
hibernate.connection.username=xxx
hibernate.connection.password=yyyyyyyy

E, abaixo, o trecho de código da classe Scr.Java, onde está ocorrendo o erro

package SCR;

import SCR.ImageCap.FrameGrabber;
import SCR.scrbeans.*;
import com.l2fprod.gui.plaf.skin.SkinLookAndFeel;
import java.awt.BorderLayout;
import java.io.InputStream;
import java.util.Properties;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
import java.util.List;
import java.util.Date;
import java.util.Calendar;


/**
 *
 * @author  fabiomelo
 */
public class Scr extends JFrame {
    
    //Objetos DAO usados em todo o sistema
    public static AlunoGraduacaoDAO alunograddao;
    public static AlunoPosGraduacaoDAO alunoposgraddao;
    public static ComensalDAO comensaldao;
    public static UsuarioDAO usrdao;                   
    public static RefeicaoDAO refeicaodao;
    public static MatriculaGraduacaoDAO matgraddao;
    public static MatriculaPosGraduacaoDAO matposgraddao;

    //Objeto para captura de imagens
    public static FrameGrabber captura;
    public static boolean CameraOk; // Informa se existe uma camera conectada
    
    public static Properties conexao;
    public static Usuario usr;

    public static final int DIA_DOM = 0;
    public static final int DIA_SEG = 1;
    public static final int DIA_TER = 2;
    public static final int DIA_QUA = 3;
    public static final int DIA_QUI = 4;
    public static final int DIA_SEX = 5;
    public static final int DIA_SAB = 6;
    
    public static final char TF_CAFE   = 'C';
    public static final char TF_ALMOCO = 'A';
    public static final char TF_JANTAR = 'J';

    public static String FTP_URL   = "ftp.nti.ufpb.br";
    public static String FTP_USUARIO = "scrftp";
    public static String FTP_SENHA = "!ru2fotos#"; 
    public static String FTP_PASTA = "/FotosSCR/"; 
    
    public static SessionFactory factory;
    
    /** Creates new form teste */
    public Scr() {
        //Mostrar Splash
        Splash.getInstance().openSplash();
        Splash.getInstance().setString("Fazendo conexão com o Banco de Dados");
        
        this.setIconImage(new ImageIcon( getClass().getResource("/SCR/Imagens/Icone.gif") ).getImage());              
        
        //setando o Look and feel       
        try{
            SkinLookAndFeel.setSkin( SkinLookAndFeel.loadThemePack( getClass().getResource("/SCR/themepack.zip") ) );
            SkinLookAndFeel.enable();           
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            //SwingUtilities.updateComponentTreeUI(this);
        }
        catch(Exception e){
            e.printStackTrace();
            JOptionPane.showMessageDialog( null,"Falha ao carregar o Look and Feel!",
            "SCR", JOptionPane.ERROR_MESSAGE );
            System.exit(0);
        }
       
        //Setando a conexão com o Banco
        
        try{
            conexao = new Properties();
            InputStream str = Scr.class.getResourceAsStream("/SCR/hibernate.properties");
            if (str!=null)
                conexao.load(str);        
            //Em caso de falha setar configuracao padrao
            else{
                conexao.put("hibernate.dialect", "net.sf.hibernate.dialect.OracleDialect");
                conexao.put("hibernate.connection.driver_class", "oracle.jdbc.driver.OracleDriver");
                conexao.put("hibernate.connection.url", "jdbc:oracle:thin:@oracle.nti.ufpb.br:UFPB");
                conexao.put("hibernate.connection.username", "xxx");
                conexao.put("hibernate.connection.password", "yyyyyyyy");        
                conexao.put("hibernate.show_sql", "true");        
            }            
            Splash.getInstance().incrementBar(10);
        }
        catch( Exception e )
        {
            e.printStackTrace();
            JOptionPane.showMessageDialog( null,"Falha ao carregar arquivo de Configuração do Banco de Dados!",
            "SCR", JOptionPane.ERROR_MESSAGE );                                          
            System.exit(0);
        }      
        
        //Criando os objetos DAOs do sistema
        Splash.getInstance().setString("Criando variaveis do sistema");
        try{
            
            factory = new Configuration() --> at SCR.Scr.<init>(Scr.java:118) -- o erro está sendo acusado nesta linha, conforme pode ser visto no log acima.
                        .addClass(AlunoGraduacao.class)
                        .addClass(AlunoPosGraduacao.class)
                        .addClass(MatriculaGraduacao.class)
                        .addClass(MatriculaPosGraduacao.class)
                        .addClass(Refeicao.class)                        
                        .addClass(Usuario.class)
                        .setProperties(conexao)
                        .buildSessionFactory();
            
            Splash.getInstance().incrementBar(60);
            alunograddao = new AlunoGraduacaoDAO();
            alunoposgraddao = new AlunoPosGraduacaoDAO();
            comensaldao = new ComensalDAO();
            refeicaodao = new RefeicaoDAO();
            matgraddao = new MatriculaGraduacaoDAO();
            matposgraddao = new MatriculaPosGraduacaoDAO();
            usrdao = new UsuarioDAO();           
            Splash.getInstance().incrementBar(10);
        }
        catch( Exception e ){
            e.printStackTrace();
            JOptionPane.showMessageDialog( null,"Falha na conexão com o Banco de Dados!",
            "SCR", JOptionPane.ERROR_MESSAGE );                                          
            sair();
        }
...

Alguém poderia me dar uma “luz no fim do túnel” ?
Agradece,

Max Carvalho