Java 1.6 + JDBC + Oracle, o que esta errado?

2 respostas
J

Instalei o banco Oracle Enterprise 11.2, estou tendo acesso pela ferramenta Database Control
do próprio oracle que me apresenta as seguintes informações:

Status : Ativo
Nome da Instância : orcl
Versão: 11.2.0.1.0
Somente Leitura : Não
Oracle Home : C:\app\xxxx\product\11.2.0\dbhome_1
Host : localhost
Listener : LISTENER_localhost
Database Vault : Não Instalado

Também estou conseguindo acessar via sqldeveloper.

Em minha aplicação java coloquei no build parh o jar ojodbc6 do diretorio da propria instalacao do
oracle.

Minha classe para conexao:

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

import org.apache.log4j.Logger;


public class DataSourceDAO
{
	private static Logger log = Logger.getLogger( DataSourceDAO.class );
	
	protected Connection connection;

	private static final String OracleDriver = "oracle.jdbc.driver.OracleDriver";

	private static final String OracleURL = "jdbc:oracle:thin:@localhost:1521:orcl";

	private static final String OracleUSER = "SYSTEM";

	private static final String OraclePASSWORD = "minhasenha";

	public DataSourceDAO( )
	{
		init( );
	}

	private void init( )
	{
		try
		{
			Class.forName( OracleDriver );
			connection = DriverManager.getConnection( OracleURL, OracleUSER, OraclePASSWORD );
		}
		catch ( Exception e )
		{
			log.error( e ) ;
			throw new RuntimeException( " Impossivel localizar DataSource " );
		}
	}

	public final void connect( ) throws SQLException
	{
		if ( connection == null )
		{
			init( );
		}
	}

	public final void close( ) throws SQLException
	{
		if ( connection != null )
		{
			connection.close( );
		}
	}

	public final void commit( )
	{
		try
		{
			if ( connection != null )
			{
				connection.commit( );
			}
		}
		catch ( SQLException e )
		{
			log.error( e ) ;
			throw new RuntimeException( "Impossivel comitar!", e );
		}
	}

	public final void rollback( )
	{
		try
		{
			if ( connection != null )
			{
				connection.rollback( );
			}
		}
		catch ( SQLException e )
		{
			log.error( e ) ;
			throw new RuntimeException( "Impossivel desfazer!", e );
		}
	}
}

Este codigo funcionava em uma maquina que tinha a versao 11 Xe, mas depois que coloquei o win64,
nao consegui instalar o XE mais agora quando tento rodar este coedigo, recebo a msg:

012-06-11 02:46:03,590][enviar] ERROR br.com.ftt.view.TratarClienteVIEW ErroConnection refused: connect

java.net.ConnectException: Connection refused: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.(Unknown Source)

at java.net.Socket.(Unknown Source)

at br.com.ftt.view.TratarClienteVIEW.enviar(TratarClienteVIEW.java:352)

at br.com.ftt.view.TratarClienteVIEW.inserir(TratarClienteVIEW.java:233)

at br.com.ftt.view.TratarClienteVIEW.access$0(TratarClienteVIEW.java:220)

at br.com.ftt.view.TratarClienteVIEW$1.widgetSelected(TratarClienteVIEW.java:140)

at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)

at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)

at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)

at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)

at br.com.ftt.view.TratarClienteVIEW.main(TratarClienteVIEW.java:59)

[2012-06-11 02:46:03,606][main] ERROR br.com.ftt.view.TratarClienteVIEW java.lang.NullPointerException

2 Respostas

nel

Estranho.

Me recordo que há duas formas de conexão ao Oracle, uma é via “thin” e infelizmente, a outra, não me recordo. Tenta pesquisar e descobrir, as vezes o outro modo funciona. Se funcionava corretamente em outra instância, ou instalação, verifique as configurações, será que não pode ser problema de firewall ?

Outro detalhe, tente alterar o “localhost” para o seu IP. Para testar, cria uma classe main que tenta apenas estabelecer a conexão com o banco, é mais rápido.
Abraços.

J

Verifique se o driver para esse versão do Oracle está correta… tive muitos problemas com isso…

att

Criado 11 de junho de 2012
Ultima resposta 17 de set. de 2012
Respostas 2
Participantes 3