2017-01-23 14 views
1

Apache ServiceMixにデプロイされたデータソースを含む青写真ファイルがあります。私はApache Karafコンソールからデータソースを照会できました。 Camel Spring-DMバンドルアプリケーションからこのデータソースにアクセスするにはどうすればよいですか?あなたはOSGiサービスとしてデータソースをバインドすることができOSGiバンドルからのデータソースへのアクセス

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> 
    <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"> 
     <property name="URL" value="URL"/> 
     <property name="user" value="USER"/> 
     <property name="password" value="PASSWORD"/> 
    </bean> 
    <service interface="javax.sql.DataSource" ref="dataSource" id="ds"> 
    <service-properties> 
      <entry key="osgi.jndi.service.name" value="jdbc/ds"/> 
    </service-properties> 
    </service> 
</blueprint> 

答えて

1

:これは私の青写真ファイルです。春のdmではこれはosgiです:参照、青写真では参考になります。

<reference id="dataSource" interface="javax.sql.DataSource"/> 

たとえば、DataSourceをSqlComponentに挿入することができます。

例として、this camel routeの修正を参照してください。これは青写真ですが、春のdmではほぼ同じです。

JPAが提供するようにHibernateを使用して
<bean id="sql" class="org.apache.camel.component.sql.SqlComponent"> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 
+0

は、あなたは私のデータソースを注入する方法の例を提供することができます。自分のアプリケーションバンドルでDataSourceを解決できません。 – user6641655

1

<?xml version="1.0" encoding="UTF-8"?> 

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
           http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" 
      version="2.1"> 

    <persistence-unit name="jpa" transaction-type="JTA"> 
     <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
     <jta-data-source>osgi:service/jdbc/ds</jta-data-source> 

    ... 

    </persistence-unit> 
</persistence> 
関連する問題