在我的karaf 4.0.8上,我安裝了功能pax-jdbc-postgresql
。對PostgreSQL的的DataFactory安裝:在karaf上通過pax-jdbc配置文件創建PosgreSQL數據源4
org.osgi.service.jdbc.DataSourceFactory]
osgi.jdbc.driver.class org.postgresql.Driver
osgi.jdbc.driver.name PostgreSQL JDBC Driver
osgi.jdbc.driver.version PostgreSQL 9.4 JDBC4.1 (build 1203)
service.bundleid 204
service.scope singleton
Using Bundles com.eclipsesource.jaxrs.publisher (184)
我已經創建文件etc/org.ops4j.datasource-psql-sandbox.cfg
:
osgi.jdbc.driver.class=org.postgresql.Driver
osgi.jdbc.driver.name=PostgreSQL
url=jdbc:postgresql://localhost:5432/sandbox
dataSourceName=psql-sandbox
user=sandbox
password=sandbox
在那之後,我看到karaf.log
確認該文件被處理:
2017-02-10 14:54:17,468 | INFO | 41-88b277ae0921)| DataSourceRegistration | 154 - org.ops4j.pax.jdbc.config - 0.9.0 |檢測到DataSource psql-sandbox的配置。跟蹤DSF用濾波器 (&(objectClass的= org.osgi.service.jdbc.DataSourceFactory)(osgi.jdbc.driver.class = org.postgresql.Driver)(osgi.jdbc.driver.name = PostgreSQL的))
但是,在控制檯的服務列表中看不到新的DataSource
。什麼地方出了錯?我在日誌中看到沒有例外......
那麼,驅動程序名稱應該是「PostgreSQL JDBC Driver」?對於feture「sqlite」它是「sqlite」,對於「mysql」它是「mysl」,所以對於「postgresql」我期望「postgresql」或者至少有一些東西很容易找到... –
名稱可以自由由誰輸出DataSourceFactory選擇。因此,安全的方法是簡單列出DataSourceDactory服務並檢查它們實際使用的內容。 –
沒有機會強制DataSourceFactory導出器保留任何可預測的約定嗎? –