проблема создания источника данных для базы данных DB2 в Jboss Fuse - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь создать источник данных в комплекте Jboss Fuse karaf. Ниже приведена конфигурация источника данных в файле верблюжьего контекста.

<bean
        class="org.springframework.jdbc.datasource.SimpleDriverDataSource" id="dataSource">
        <property name="driverClass" value="com.ibm.db2.jcc.DB2Driver"/>
        <property name="url" value="jdbc:db2://hfsasa.dse.com:1081/MYDB"/>
        <property name="username" value="xyz"/>
        <property name="password" value="abc"/>
    </bean>

Получение ниже исключения при запуске моего пакета в Jboss Fuse karaf.

JBossFuse:karaf@root> Exception in thread "SpringOsgiExtenderThread-30" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in URL [bundle://316.75:0/META-INF/spring/camel-context.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Class' for property 'driverClass'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.ibm.db2.jcc.DB2Driver]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:638)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:942)
        at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)
        at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)
        at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
        at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
        at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
        at java.lang.Thread.run(Thread.java:748)

Класс SimpleDriverDataSource принимает java.sql.Driver в качестве аргумента. Как передать его так же, как в файле camel-context.xml.

public void setDriverClass(Class<? extends Driver> driverClass) {
        this.driver = BeanUtils.instantiateClass(driverClass);
    }
...