Search code examples
javahibernateseamjta

how to solve Null user or password not supported in THIN driver


i am getting Null user or password not supported in THIN driver when configure jpa with hibernate configuration in seam

components.xml

<persistence:hibernate-session-factory   name="hibernateSessionFactory" cfg-resource-name="hibernate.cfg.xml"/>
<persistence:managed-hibernate-session name="session" 
                 auto-create="true"
 session-factory-jndi-name="java:/mobeeSessionFactory"/>

hibernate.cfg.xml

<hibernate-configuration>
 <session-factory name="java:/mobeeSessionFactory">
  <property name="hibernate.connection.pool_size">10</property>
  <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:mobee</property>
  <property name="hibernate.connection.username">mobeemigrate</property>
  <property name="hibernate.show_sql">true</property>
 <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
  <property name="hibernate.format_sql">true</property>

  <property name="hibernate.default_entity_mode">pojo</property>
  <property name="hibernate.session_factory_name">java:/mobeeSessionFactory</property>
  <property name="hibernate.connection.datasource">mobeeadminDataSource</property>
  <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
  <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
  <property name="hibernate.transaction.auto_close_session">false</property>
  <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
  <property name="hibernate.transaction.flush_before_completion">true</property>
  <property name="hibernate.hbm2ddl.auto">create</property>
  <!-- Here are the mappings -->
  <mapping class="tempCustomers" package="com.manam.mobee.persist.entity.TempCustomers"/>
  <mapping class="tempAccounts" package="com.manam.mobee.persist.entity.TempAccounts"/>
 </session-factory>
</hibernate-configuration>

projectname-ds.xml

<local-tx-datasource>
  <jndi-name>mobeeadminDataSource</jndi-name>
  <use-java-context>false</use-java-context>
  <connection-url>jdbc:oracle:thin:@localhost:1521:mobee</connection-url>
  <driver-class>oracle.jdbc.OracleDriver</driver-class>
  <user-name>mobeemigrate</user-name>
  <password>mobeemigrate</password>
 </local-tx-datasource>

Solution

  • The password is missing from hibernate.cfg.xml.

    To fix include the following in your hibernate.cfg.xml file as shown below:

      <property name="hibernate.connection.password">mobeemigrate</property>
    

    hibernate.cfg.xml

    <hibernate-configuration>
     <session-factory name="java:/mobeeSessionFactory">
      <property name="hibernate.connection.pool_size">10</property>
      <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
      <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:mobee</property>
      <property name="hibernate.connection.username">mobeemigrate</property>
      <property name="hibernate.connection.password">mobeemigrate</property>
      <property name="hibernate.show_sql">true</property>
     <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
      <property name="hibernate.format_sql">true</property>
    
      <property name="hibernate.default_entity_mode">pojo</property>
      <property name="hibernate.session_factory_name">java:/mobeeSessionFactory</property>
      <property name="hibernate.connection.datasource">mobeeadminDataSource</property>
      <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
      <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
      <property name="hibernate.transaction.auto_close_session">false</property>
      <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
      <property name="hibernate.transaction.flush_before_completion">true</property>
      <property name="hibernate.hbm2ddl.auto">create</property>
      <!-- Here are the mappings -->
      <mapping class="tempCustomers" package="com.manam.mobee.persist.entity.TempCustomers"/>
      <mapping class="tempAccounts" package="com.manam.mobee.persist.entity.TempAccounts"/>
     </session-factory>
    </hibernate-configuration>