問題タブ [apache-servicemix]
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.
shared-libraries - jbi-maven-plugin を使用して servicemix 共有ライブラリを統合するには?
ServiceMix 3.5 を使用しています。複数の ServiceAssemblies があり、それぞれが ServiceUnit 用です。サービスユニットには多くのライブラリが共通しているため、maven pom で「提供済み」のスコープでマークします。共有ライブラリには、サービス ユニットで共有するすべてのライブラリが含まれています。次のmaven pom.xmlに従って構築しましたが、その効果は単純な例外です:
java.lang.ClassNotFoundException: クラスローダー org.apache.xbean.spring.context.FileSystemXmlApplicationContext の org.apache.commons.dbcp.BasicDataSource
サービスユニットが共有ライブラリの jar を利用できるようにするには、どうすればよいですか (おそらく jbi-maven-plugin を使用します)。
共有ライブラリ サービス ユニット pom:
共有ライブラリ サービス ユニット pom:
共有ライブラリを使用する必要があるサービス ユニットの Pom:
サービス ユニットのサービス アセンブリのポン
java - CXF 経由で投稿を送信
CXF に基づいて Web サービスを構築していますが、コードで変数を URL に送信しています。
しかし、CXF でこれを行うためのより簡単な方法があるかどうか疑問に思っています。
つまり、CXF には何かが組み込まれているのではないでしょうか。
このコードは、他のサーブレットからの応答を送信して取得するのに時間がかかると思います...このCXF Webサービスはservicemixに配置されるため、変数を送信するには非常に高速なものが必要です
soap - servicemix 4.3.1 から 4.4.1 への移行時に「SOAP のメッセージ ファクトリを作成できません」
いくつかの cxf エンドポイントといくつかの camel ルートです。私はservicemix 4.3.1でうまく動作します。以下は典型的なcxf:endpointです:
しかし、バンドルを servicemix 4.3.1 にデプロイしようとすると、次の例外が発生します。
トラブルの原因: セキュリティを提供するインターセプター。タグなしで展開されたエンドポイントの場合<cxf:inInterceptors>
- すべて正常に動作します。
4.4.1 での in/out インターセプターの使用は変更されましたか?
誰かが同じ問題を抱えていますか?
exception - Apache Camel と Mina (Karaf) が CamelExchangeException をスローする簡単な例: 本文を書き込めません
ServiceMix 4.4.0 から単純な activemq-camel-blueprint の例を取り上げ、ASCII ラインから読み取るために Mina TCP ソケットを追加しました。
Karaf 内で例を実行しています。NMEAString が行うことは、オブジェクトを STDOUT に出力することだけです。
小さなプログラムを実行して、ASCII ファイルをソケット接続にプッシュします。ファイル全体 (~40) 行を数ミリ秒でプッシュします。
行間約 30 秒で、Karaf 内に STDOUT の出力が表示されます。servicemix.log ファイルに次の例外が記録されています。
この例外が何を意味するのか、なぜこのような単純な例で例外がスローされるのかを知っている人はいますか?
org.apache.camel.CamelException: org.apache.camel.CamelExchangeException: 本文を書き込めません。Exchange[Message: [Body is null]] at org.apache.camel.component.mina.MinaConsumer$ReceiveHandler.exceptionCaught(MinaConsumer.java:91)[186:org.apache.camel.camel-mina:2.8.3] org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.exceptionCaught (AbstractIoFilterChain.java:564) [187:org.apache.servicemix.bundles.mina:1.1.7.5] で org.apache.mina.common.support で.AbstractIoFilterChain.callNextExceptionCaught (AbstractIoFilterChain.java:345) [187:org.apache.servicemix.bundles.mina:1.1.7.5] org.apache.mina.common.support.AbstractIoFilterChain.access$1000 (AbstractIoFilterChain.java:53) で[187:org.apache.servicemix.bundles.mina:1.1.7.5] org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1 で。exceptionCaught (AbstractIoFilterChain.java:643) [187:org.apache.servicemix.bundles.mina:1.1.7.5] org.apache.mina.filter.executor.ExecutorFilter.processEvent (ExecutorFilter.java:224) [187:org .apache.servicemix.bundles.mina:1.1.7.5] org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)[187:org.apache.servicemix.bundles.mina:1.1 で.7.5] で java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_29] で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6 .0_29] at java.lang.Thread.run(Thread.java:662)[:1.6.0_29] 原因: org.apache.camel.CamelExchangeException: 本文を書き込めません。Exchange[Message: [Body is null]] at org.apache.camel.component.mina.MinaHelper.writeBody(MinaHelper.java:55)[186:org.apache.
osgi - servicemix (commons-pool 1.6) で利用可能なものとは異なるバージョンのライブラリに応じて
servicemix のバージョンが 1.5.4 であるのに対し、commons-pool 1.6 (ジェネリックをサポートする) を使用するプロジェクト (camel osgi bundle) があります。
この依存関係を解決するにはどうすればよいですか?
maven - Servicemix はすべての依存関係をインポートします
Servicemix 4.4.0 用の新しいプロジェクトを作成しています。私のプロジェクトは、いくつかのモジュールと 1 つの親 pom.xml で構成されます。以下に例を示します。
各モジュールには、親 pom を参照する要素が含まれています。
親 pom ですべての Servicemix 依存関係を宣言することを考えていました。このようにして、子モジュールのバージョンを削除します。
私の質問は、Servicemix のすべての依存関係を親の pom.xml に、1 つずつ直接入力せずに含める方法です。おそらく、Servicemix の親 pom などをインポートする方法はありますか?
singleton - OSGI CXF シングルトン クラスローディングの問題
この質問は現在、バウンティに寄せられています! この問題を解決する最初の回答が勝ちます。
そのため、最近、OSGI のバンドルが互いに 100% 分離されていないことを発見しました。特に、バンドルがシングルトンを含む共通のバンドルを共有している場合、関連のない 2 つのバンドルがシングルトンを上書きする可能性があります。この問題は、CXF ライブラリで明らかになりました。何が起こっているかの詳細な例を挙げましょう:
バンドル A、B、および共有バンドル CXF がすべて FuseESB ServiceMix (osgi プラットフォーム) に含まれています。CXF の Bus クラスはシングルトンであり、OSGI にはバンドルごとに 1 つのクラスローダーがあるため、CXF を使用する他のすべてのバンドルとこのシングルトンを共有します。したがって、バンドル A とバンドル B に異なるバスを作成することはできないようです。バンドル A は SSL を使用し、バンドル B は SSL を使用すべきではないため、これは重要です。バンドル A とバンドル B が、同じ ServiceMix に一緒にデプロイする必要があること以外は、互いに何の関係もないことを考えると、これはさらに苛立たしいことです。
今、私はしばらくの間(1〜2か月)この問題に直面しており、さまざまな解決策をたくさん読んできました。ただし、問題は、多くのソリューションではソース コードを完全に制御する必要があり、この場合は制御できないことです。私が作成しているバンドル A は、CXF を使用する Xenara と呼ばれる独自のサードパーティの非 osgi ライブラリを使用しています。私の手に負えないビジネス上の理由から、このサードパーティのライブラリを使用する必要があります。幸いなことに、このライブラリが使用する CXF スプリング Bean ファイルにアクセスできます。
この問題を解決するには、バンドル A が CXF の独自の個人用インスタンスを使用できるようにするか、少なくとも他のバンドルと共有されていない CXF バスをインスタンス化できるようにする必要があると思います。私が試したり検討したりした方法は次のとおりです。
CXF をバンドル A に組み込みましたが、残念ながら、クラスローダーはクラスパスを調べる代わりに、バンドル A の外部から CXF をフェッチし続けました。バンドル A の外側を検索する前に、最初にバンドル A 内の CXF を強制的に検索する方法がわかりませんでした。
バンドル A をサービスにする提案がなされました。いくつかの誤解があり、シングルトンは CXF ではなく A にあると考えられていたと思います。とにかく試してみましたが、問題は解決しませんでした。CXF バスは、バンドル A と B の間で共有されていました。
バンドル A が CXF クラスのロードに別のクラスローダーを使用するように、クラスローディングをオーバーライドします。このロジックを完全には理解していませんが、CXF バスと http コンジットを作成するために Spring Bean が使用されていることを考えると、非常にトリッキーになると確信しています。より良いアイデアを得るには、以下の (4) を参照してください。
CXF には、特定のスレッド コンテキストに CXF バスと http-conduit を設定する方法があります。本当にこのソリューションを使用したいのですが、CXF Bean ファイルを同等の Java コードに変換する方法がわかりません。CXF スプリング Bean ファイルを以下に示します。このhttpコンジットを使用してソースコードにアクセスできないことに注意してください。そのため、SOAPService、wsdlにアクセスできないため、このリンクの「Javaコードの使用」に示されている例を使用していませんなど...
/li>
apache - FuseESBにラクダジェット機能をインストール中にエラーが発生しました
Windows7マシンでFuseESBを構成しようとしています。設定は次のとおりです。
構成
- JRE 1.6.0_30
- MSVC++再頒布可能パッケージ-x869.0.30729.17
- JAVA_HOMEを「C:\ ProgramFiles \ Java\jre6」に設定
- Apache ServiceMix 4.4.1-fuse-02-02
ServiceMixコンソールを起動した後、次のコマンドを使用してcamel-jettyをインストールしようとしています。
機能:ラクダ-桟橋をインストールします
これは次のメッセージで失敗します。
コマンドの実行中にエラーが発生しました:URL [mvn:org.apache.camel / camel-http/2.8.0-fuse-02-02]を解決できませんでした。
完全なログメッセージは次のとおりです。
誰かがここで私を助けてくれますか?
org.ops4j.opx.url.mvn.cfgファイルの内容は次のとおりです。
ibm-mq - ApacheServiceMixをWebsphereMQに接続する
ApacheServiceMixにOSGIバンドルとしてデプロイされたラクダルートからWebsphereMQキューマネージャーに接続しようとしています。
WebsphereMQに付属するIBMOSGIバンドルをデプロイし、以下のようにSpring構成を構成しました。-
実行時に、このエラーが発生します=> java.lang.ClassNotFoundException:javax.net.ssl.HandshakeCompletedListenerがcom.ibm.msg.client.osgi.wmqで見つかりません
どのIBMバンドルもjavax.net.sslをインポートせず、実際にそれらを再バンドルすることはできませんか?
servicemix /fuse-4からWMQへの接続を機能させることができた人はいますか?
どんな助けでも大歓迎です。
トム、よろしくお願いします