Why JBoss Fuse can not find DataSource ?

Solution Unverified - Updated -

Issue

  • While trying to deploy a bundle with the application using a datasource on JBoss Fuse, it throws Error.
  • This application's code correctly runs on Jboss Fuse Service Works.
  • Following is the configuration used to deploy the datasource. Put a file named "test-ds.karaf.xml" in the hot deployment directory. Following is the content of this file:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
  <bean id="dataSource" class="org.postgresql.ds.PGPoolingDataSource" destroy-method="close">
    <property name="serverName" value="localhost:5432/test"/>
    <property name="user" value="testUSER"/>
    <property name="password" value="testPWD"/>
    <property name="dataSourceName" value="testDS"/>
    <property name="initialConnections" value="2"/>
    <property name="maxConnections" value="4"/>
  </bean>
  <service interface="javax.sql.DataSource" ref="dataSource">
    <service-properties>
      <entry key="osgi.jndi.service.name" value="testDS"/>
        </service-properties>
  </service>
</blueprint>
  • The bundle of the Postgresql driver are already installed:
[ 327] [Active     ] [            ] [       ] [   60] PostgreSQL JDBC Driver OSGi bundle (9.1.901.jdbc4_1)
[ 340] [Active     ] [Created     ] [       ] [   60] test-ds.karaf.xml (0.0.0)
  • The problem is that the bundle application raises the following error:
Caused by: org.hibernate.HibernateException: Could not find datasource
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:79)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:438)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)[341:test-backend-camel-5.2.0.war:0 ]
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)[341:test-backend-camel-5.2.0.war:0 ]
    at test.database.util.AbstractHibernateUtil.init(AbstractHibernateUtil.java:129)[341:test-backend-camel-5.2.0.war:0 ]
    ... 39 more
Caused by: javax.naming.NameNotFoundException; remaining name 'testDS'
    at org.eclipse.jetty.jndi.local.localContextRoot.lookup(localContextRoot.java:490)[92:org.eclipse.jetty.aggregate.jetty-all-server:8.1.14.v20131031]
    at org.eclipse.jetty.jndi.local.localContextRoot.lookup(localContextRoot.java:536)[92:org.eclipse.jetty.aggregate.jetty-all-server:8.1.14.v20131031]
    at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)[338:org.apache.aries.jndi.core:1.0.0]
    at javax.naming.InitialContext.lookup(InitialContext.java:392)[:1.6.0_38]
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)[341:test-backend-camel-5.2.0.war:0 ]

Environment

  • Red Hat JBoss Fuse
    • 6.1.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content