2

目前,我的 CXF.xml 中有一个数据源声明。

<bean id="myDB2DataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
    <property name="url" value="<my db2 url>" />
    <property name="username" value="<my username>" /> 
    <property name="password" value="<my password>" />
    <property name="connectionProperties">
        <props>
            <prop key="blockingReadConnectionTimeout">20</prop>
        </props>                                  
    </property>
</bean>

这很好用。但是我需要使用可能的 JNDI 将它移动到我的数据源 xml 文件(my-ds.xml)。

类似于:(在 cxf.xml 中)

<bean id="myDB2DataSource" class="org.springframework.jndi.JndiObjectFactoryBean"
    scope="singleton">
    <property name="jndiName">
        <value>java:/jdbc.datasource.myDB2DataSource</value>
    </property>
</bean>

和(在 my-ds.xml 中):

<datasource jndi-name="java:/jdbc.datasource.myDB2DataSource"
    pool-name="jdbc.datasource.myDB2DataSource" jta="false">
    <connection-url>"<my db2 url>"
    </connection-url>
    <driver>com.ibm.db2.jcc.DB2Driver</driver>
    <security>
        <user-name><my username></user-name>
        <password><my password></password>
    </security>
</datasource>

但我不能让它工作。cxf.xml 和 my-ds.xml 中的正确配置应该是什么?

我总是遇到 BeanCreationNotAllowedException。: 创建名为“cxf”的 bean 时出错

以及我认为由于找不到我的 bean myDB2DataSource () 导致的许多其他异常。

No matching bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value=myDB2DataSource)}

Related cause: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceMIMS' defined in ServletContext resource [/WEB-INF/cxf.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: jdbc.datasource.myDB2DataSource -- service jboss.naming.context.java."jdbc.datasource.myDB2DataSource"

谢谢!

4

0 回答 0