問題タブ [pax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1168 参照

mysql - karaf + pax-jdbc 接続プールが制限に達しました

karaf の pax-jdbc のプール接続に問題があります。blueprint.xml を介して Mysql DataSource (DS) をプロジェクトに挿入しようとしています。テストのために、DS を挿入する karaf コマンドを作成しました。 karaf コマンド クラスを開き、その接続でクエリを実行します。問題はありませんが、コマンドを何度も実行すると、実行ごとに DS の新しいインスタンスが作成され、プール接続が MySQL への新しい接続を開くことができません。これは、プールが制限に達したためです。

このリンクでコードを github にアップロードしました: https://github.com/christmo/karaf-pax-jdbc。このプロジェクトでエラーが見つかった場合は、プル リクエストを送信できます。

このプロジェクトをテストするには、次のことができます。

このコマンド「mysql-connection」を 9 回実行すると、karaf のプロンプトがフリーズし、実行を中断すると、次の例外が発生する可能性があります。

java.sql.SQLException: 接続を取得できません。組織の com.twim.OrmCommand.execute(OrmCommand.java:53) の org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:146) で一般的なエラーが発生しました。 apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:83) at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:67) at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:87) at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480) at org. org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406) org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) org.apache.felix.gogo.runtime. org.apache.felix.gogo.runtime.Closure の Closure.execute(Closure.java:182)。org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java: 270) java.lang.Thread.run(Thread.java:745) で 原因: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014) での java.lang.InterruptedException java.util で.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048) at org.apache.commons.pool2.impl.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:583) at org.apache.commons.pool2.impl.GenericObjectPool .borrowObject(GenericObjectPool.java:442) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134) ... 12 詳細

0 投票する
1 に答える
175 参照

java - Felix (組み込み) 開始の最初から url mvn Handler を Pax する方法は?

pax url ハンドラーをフェリックスにインストールするにはどうすればよいですか?

このプロジェクトは maven によって管理され、次のように felix を開始しています。

pom ファイルには、pax-url-mvn:1.2.5 依存関係を含めました。

一番下の行は、maven プロトコルを介してバンドルのインストールを有効にしています。

ありがとうございました。

0 投票する
1 に答える
1101 参照

java - 間違った pax-jdbc DataSource を使用して Karaf にバンドルする

Karaf 4.0.3 にロードされたさまざまな OSGi バンドルと、javax.sql.DataSourceによってロードされた複数の OSGi バンドルがありpax-jdbc-configます。たとえば、異なるデータベースに対して 2 つのデータソースが構成されているとします。

私の問題は、バンドルMODULE BがdatasourceBを使用する必要があることです。すべてのソース ファイルとblueprint.xmlでdatasourceBを使用するように構成されています。

karaf バンドルが異なる DataSource をどのように簡単に使用できるのか、私には本当にわかりません。

また、datasourceA構成ファイルが削除されると、MODULE BはdatasourceBを正しく使用します。

この問題は、構成ファイルの順序が間違っているか、何かの問題ですか?

編集: datasourceA構成ファイルを削除すると、Karaf がその DataSource (に存在しない) を削除すると、MODULE BがdatasourceBを正しく使用
することがわかりました。service:list DataSource

しかし、なぜこれが起こっているのかはまだわかりません。これに関するいくつかのドキュメントを読み逃しましたか? それはpax-jdbc-config問題ですか、それともカラフの問題ですか?

0 投票する
1 に答える
141 参照

java - PAX-CDI: CdiContainerFactory および BundleTracker

felix と pax-cdi 0.13 を使用して溶接します。B に 2 つのバンドル A があります。バンドル AI には BundleTracker とカスタマイザーがあり、バンドル BI には CDI Bean があります。したがって、バンドルトラッカーで、Bean マネージャーを使用してバンドル B から cdi Bean を取得したいと考えています。だから私はカスタマイザーにメソッドを持っています:

バンドル トラッカーを登録するには、次のコードを使用します。

上記のコードは機能します。しかしいつもではない。タイミングの問題があります。私はいつも取得Cdi container factory is not nullしますが、次の行

NullPointerException をスローすることがあります。バンドル B がアクティブになると、CDI コンテナーはまだ準備ができていないと思います。そのような問題はどのように解決できますか?

0 投票する
1 に答える
1409 参照

postgresql - karaf 4 で pax-jdbc 構成ファイルを介して PostgreSQL DataSource を作成する

私のkaraf 4.0.8に機能をインストールしましたpax-jdbc-postgresql。PostgreSQL 用の DataFactory がインストールされます。

ファイルを作成しましたetc/org.ops4j.datasource-psql-sandbox.cfg

その後karaf.log、ファイルが処理されたという確認が表示されます。

2017-02-10 14:54:17,468 | 情報 | 41-88b277ae0921) | データソース登録 | 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コンソールのサービス リストに新しいものはありません。何が悪かったのか?ログに例外はありません....