Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

[resolved] Oracle DB access via Karaf

We are trying to configure the oracle database access through karaf.

Below is the link that we used.
https://github.com/cschneider/Karaf-Tutorial/blob/master/db/datasource/datasource-oracle.xml
The blueprint for datasource-oracle.xml for ojdbc6.jar:
<blueprint xmlns=" http://www.osgi.org/xmlns/blueprint/v1.0.0">
<bean id="dataSource" class="oracle.jdbc.OracleDriver">
<property name="url" value="jdbc 0683p000009MA5A.pngracle:thin:@10.75.38.124:1521 0683p000009MACJ.png20KSTN"/>
<property name="user" value="workflow_app"/>
<property name="password" value="pass_w0rd"/>
</bean>

<service interface="javax.sql.DataSource" ref="dataSource">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/oracleds"/>
</service-properties>
</service>
</blueprint>

However, in karaf list we get the following error.
In Karaf list:
wrap_mvn_ojdbc_ojdbc_11.2.0.2.0 (0)
datasource-oracle.xml (0.0.0)
karaf@trun> display-exception
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to find property descriptor url on class oracle.jdbc.OracleDriver
at org.apache.aries.blueprint.container.BeanRecipe.getPropertyDescriptor(BeanRecipe.java:820)
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:802)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:773)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:754)
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:720)
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Labels (6)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

I just checked on my karaf and you are right. The problem is that the URL property has to be in uppercase. I just corrected the git datasource file. The bean should now look like this:
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
<property name="URL" value="jdbc 0683p000009MA5A.pngracle:thin:@localhost:1521 0683p000009MA5A.pngrcl"/>
<property name="user" value="test"/>
<property name="password" value="test"/>
</bean>
Does this work for you?

View solution in original post

5 Replies
Anonymous
Not applicable
Author

You are using the wrong class from Oracle. Try to use oracle.jdbc.pool.OracleDataSource instead of OracleDriver.
Christian
Anonymous
Not applicable
Author

The result was the same using oracle.jdbc.pool.OracleDataSource.
Thanks.
Anonymous
Not applicable
Author

I suspect you still inadvertently use the old blueprint file with the wrong class. Bundles (and the blueprint file is seen as bundle by the OSGi container) are cached in the data directory. Make sure to explicitly uninstall the datasource-oracle.xml bunlde before installing the new one. Removing bundles or blueprint configurations from the deploy folder does not lead to uninstallation of the bundle.
oracle.jdbc.pool.OracleDataSource is definetly the way to go.
Zsolt
Anonymous
Not applicable
Author

I just checked on my karaf and you are right. The problem is that the URL property has to be in uppercase. I just corrected the git datasource file. The bean should now look like this:
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
<property name="URL" value="jdbc 0683p000009MA5A.pngracle:thin:@localhost:1521 0683p000009MA5A.pngrcl"/>
<property name="user" value="test"/>
<property name="password" value="test"/>
</bean>
Does this work for you?
Anonymous
Not applicable
Author

Excellent.... It works. Thanks a lot...