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)
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
racle:thin:@localhost:1521
rcl"/>
<property name="user" value="test"/>
<property name="password" value="test"/>
</bean>
Does this work for you?
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
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
racle:thin:@localhost:1521
rcl"/>
<property name="user" value="test"/>
<property name="password" value="test"/>
</bean>
Does this work for you?