Datasource Oracle no Jboss 4.0.3SP1

Olá Pessoal!

O meu problema é o seguinte…

Estou migrando uma aplicação do Tomcat 6 para o Jboss 4.0.3 e não estou conseguindo configurar o datasource para um banco de dados oracle.
Copiei o arquivo oracle-ds.xml para a pasta server\default\deploy mudando as informações mas quando faço o lookup do context rretorna sempre null.

Estou usando jdk1.5.0_10 e Jboss 4.0.3SP1

Já configurei também os arquivos web.xml e jboss-web.xml mas nada funcionou.

andrecs2, já tentei…

O meu código do oracle-ds.xml está assim:

<?xml version="1.0" encoding="UTF-8"?>

<!-- ===================================================================== -->
<!--                                                                       -->
<!--  JBoss Server Configuration                                           -->
<!--                                                                       -->
<!-- ===================================================================== -->

<!-- $Id: oracle-ds.xml,v 1.6 2004/09/15 14:37:40 loubyansky Exp $ -->
<!-- ==================================================================== -->
<!--  Datasource config for Oracle originally from Steven Coy             -->
<!-- ==================================================================== -->


<datasources>
  <local-tx-datasource>
    <jndi-name>jdbc/OracleDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:TESTE</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>usuario</user-name>
    <password>senha</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>200</max-pool-size>
		 <prepared-statement-cache-size>100</prepared-statement-cache-size>
  </local-tx-datasource>

</datasources>

E o código java está assim:

    Context ctx = new InitialContext(); 
    DataSource ds = (DataSource) ctx.lookup("java:jdbc/OracleDS"); 
    con = ds.getConnection();

E no final o ds está sempre null.

Com essa mudança aparece o erro “jdbc not bound”.

[quote=hbb_lk]Com essa mudança aparece o erro “jdbc not bound”.

[/quote]

Antes de fazer o deploy da aplicação, verifique se o JBoss está criando com sucesso seu DS.

  1. Acesse o jmx-console

http://seu-host:sua-porta/jmx-console

  1. Procure um link com o texto “JNDIView”. (ctrl-f no browser !) e clique nele

  2. Na página que aparece, clique no botão “Invoke” que aparece sob a operação “list()”.

  3. Procure na árvore que aparece após o “Java Namespace” o seu DS.
    Se não encontrá-lo, tem erro na definição do arquivo. Se aparecer, é possivel que haja algum problema com usuário/senha utilizados para a conexão.

De qq forma, estou achando um tanto estranho vc. ter null após o getConnection(), em vez de tomar uma exceção na cara.

tenta assim:

<?xml version="1.0" encoding="UTF-8"?>

<!-- ===================================================================== -->
<!--                                                                       -->
<!--  JBoss Server Configuration                                           -->
<!--                                                                       -->
<!-- ===================================================================== -->

<!-- $Id: oracle-ds.xml,v 1.1.2.4 2003/09/17 03:46:01 ejort Exp $ -->
<!-- ==================================================================== -->
<!--  Datasource config for Oracle originally from Steven Coy             -->
<!-- ==================================================================== -->


<datasources>
  <local-tx-datasource>
    <jndi-name>OracleDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@servidor:1521:esquema</connection-url>
	<!--

		Here are a couple of the possible OCI configurations.
		For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm

	<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
		or
	<connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>

		Clearly, its better to have TNS set up properly.
	 -->
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>username</user-name>
    <password>senha</password>
    
    <!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
    <!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
    <!-- Checks the Oracle error codes and messages for fatal errors -->
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
        <!-- sql to call when connection is created
        <new-connection-sql>some arbitrary sql</new-connection-sql>
        -->

        <!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered
        <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
        -->

  </local-tx-datasource>

</datasources>

tenta assim:

Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/OracleDS"); con = ds.getConnection();