【发布时间】:2019-01-25 05:04:20
【问题描述】:
使用 blueprint.xml,我正在尝试为数据源创建 jndi 服务并在同一个包中具有引用。数据源服务未激活,并且在一定时间后引用失败并导致超时。 此外,当蓝图中对服务的引用进行注释时,服务将被激活。 有没有一种方法可以处理服务的激活,它的引用也存在于同一个包中。
<service id="zDS" interface="javax.sql.DataSource" ref="zOltpDataSource">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/zDS"/>
</service-properties>
</service>
<bean id="zDao"
class="com.h.h.common.dao.ZDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<reference id="dataSource" interface="javax.sql.DataSource"
filter="(osgi.jndi.service.name=jdbc/zDS)">
</reference>
<bean id="zOltpDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${z.driverClassName}"/>
<property name="url" value="${z.url}"/>
<property name="username" value="${z.username}"/>
<property name="password" value="${z.password}"/>
<property name="initialSize" value="${z.initialSize}"/>
<property name="maxIdle" value="${z.maxIdle}"/>
<property name="maxActive" value="${z.maxActive}"/>
<property name="validationQuery" value="${z.validationQuery}"/>
<property name="testOnBorrow" value="${z.testOnBorrow}"/>
</bean>
【问题讨论】:
-
您已经跳过了蓝图 XML 的重要部分:bean
zOltpDataSource是在哪里定义的? -
将 bluprint 中的 zOltpDataSource 添加到代码部分。
标签: osgi apache-karaf blueprint-osgi