2017-01-23 10 views
1

У меня есть файл чертежа, содержащий источник данных, развернутый в Apache ServiceMix. Я смог запросить источник данных с консоли Apache Karaf. Как я могу получить доступ к этому источнику данных из приложения Camel Spring-DM? Это мой файл чертежа:Доступ к источнику данных из пакета 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

Вы можете связать DataSource как службу OSGi. Весной dm это osgi: ссылка, в плане это было бы ссылкой.

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

Затем вы можете ввести DataSource в SqlComponent.

В качестве примера см. Исправление, которое я сделал для this camel route. Это план, но он почти такой же для весны дм.

<bean id="sql" class="org.apache.camel.component.sql.SqlComponent"> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 
+0

могли бы вы предоставить мне пример того, как вводить DataSource. Я не могу разрешить DataSource в своем приложении. – user6641655

1

Использование Hibernate в JPA обеспечивают:

<?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>