2017-02-13 8 views
1

でPostgreSQLのデータソースを設定するとき:NPE私はPAXのために、以下のデータソース設定ファイル持っ春分

osgi.jdbc.driver.class=org.postgresql.Driver 
url=jdbc:postgresql://localhost:5432/demo 
dataSourceName=demo-pg 
user=demo 
password=demo 

をそれはKarafにデータソースを作成するには、しかし、Eclipseで、春分のOSGiランチャーを使用して、私はNPEを取得:

java.lang.NullPointerException 
    at java.util.Hashtable.put(Hashtable.java:459) 
    at java.util.Properties.setProperty(Properties.java:166) 
    at org.postgresql.ds.common.BaseDataSource.setProperty(BaseDataSource.java:1030) 
    at org.postgresql.ds.common.BaseDataSource.setUrl(BaseDataSource.java:964) 
    at org.postgresql.osgi.PGDataSourceFactory.configureBaseDataSource(PGDataSourceFactory.java:65) 
    at org.postgresql.osgi.PGDataSourceFactory.createSimpleDataSource(PGDataSourceFactory.java:127) 
    at org.postgresql.osgi.PGDataSourceFactory.createDataSource(PGDataSourceFactory.java:149) 
    at org.ops4j.pax.jdbc.config.impl.DataSourceRegistration.createDs(DataSourceRegistration.java:108) 
    at org.ops4j.pax.jdbc.config.impl.DataSourceRegistration.<init>(DataSourceRegistration.java:63) 
    at org.ops4j.pax.jdbc.config.impl.DataSourceFactoryTracker.addingService(DataSourceFactoryTracker.java:42) 
    at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) 
    at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) 
    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) 
    at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) 
    at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) 
    at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) 
    at org.ops4j.pax.jdbc.config.impl.DataSourceConfigManager.updated(DataSourceConfigManager.java:80) 
    at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.updated(ManagedServiceFactoryTracker.java:159) 
    at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:93) 
    at org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1772) 
    at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) 
    at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) 
    at java.lang.Thread.run(Thread.java:745) 

デバッガで検査したところ、プロパティPROTOCOL_VERSIONがnullであるため、エラーがスローされています。私は設定ファイルに変数を設定しようとしました:

protocolVersion=3 

しかし、私はまだ同じエラーが発生します。

Equinox/EclipseランタイムでPostgreSQL DataSourceを設定するにはどうすればよいですか?

私は、PostgreSQLドライバのバージョン9.4から1200を使用しています:

<dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>9.4-1200-jdbc41</version> 
    </dependency> 

答えて

0

あなたは問題PAXJDBC-107を打つ可能性があります。 Pax-jdbc-configはリフレクションを使用してプロパティを書き込みます。これは、データソースにIntegerパラメータを持つsetterがあり、intがない場合には、現在動作しています。私は次の日にこれを修正し、新しいリリースを予定しています。

+0

それはより多くのように見えるがhttps://ops4j1.jira.com/browse/PAXJDBC-84 –

+0

[OK]を...それが唯一のPostgreSQLのバージョンで問題になる可能性があります。 –

+0

それはそうです。私はこれを答えとして書くべきかどうかはわかりません...でも、バグのあるバージョンをMavenリポジトリから削除すべきではありませんか? –

2

新しいPostgreSQL 42.1.1ドライバで解決されたようです。

PAXJDBC PostgreSQL Driver Adapterページ状態のノート:

現在のPostgreSQLのバージョンでは、有効なバンドルであり、またDataSourceFactoryを提供しています。したがって、最近のバージョンを使用する場合、このアダプタは必要ありません。

このドライバは試してみてください:

<dependency> 
    <groupId>org.postgresql</groupId> 
    <artifactId>postgresql</artifactId> 
    <version>42.1.1</version> 
</dependency> 
関連する問題