問題タブ [apache-karaf]
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.
java - Spring を使用して OSGi でスコープ プロトタイプを持つオブジェクトの別のインスタンスを作成する
難しい問題なので、分かりやすく説明します。にデプロイされた3 つのOSGi
バンドルがあります。これらの , ,バンドルで使用されるセキュリティ バンドルもあります。A
B
C
Apache Karaf
A
B
C
各A
、B
およびC
bundles には次が含まれます。
Spring
セキュリティ バンドルからセキュリティ ハンドラを取得するためのコード スニペット。セキュリティ バンドル内のこのハンドラーはOSGi
サービスとして公開され、次のようにセキュリティ バンドル内に作成されます。
BasicAuthFactoryHandlerImpl#createSecurityHandler(String realm)
バンドルごとにセキュリティ ハンドラの異なるインスタンスを作成するために使用されます。上記のコードに示すように、createSecurityHandler
メソッドが呼び出されると、レルムはバンドルによって渡されます。Spring
MethodInvokingFactoryBean
securityHandler
Spring
Bean にはプロトタイプがあり、このscope
場合、メソッドへのすべての呼び出しgetBean
が呼び出されると、新しく作成されたオブジェクトが返されます。
セキュリティハンドラーに設定しているレルムは次のとおりです。
各バンドルのハンドラーが作成され、すべて問題ありません。しかし、問題は、すべてのバンドルのレルムが、最初に開始されたバンドルから渡されたレルムと何らかの形で同じであることです。異なるバンドルの各構成で異なるレルムを渡していると確信していSpring
ますが、レルムは常に最初に開始されたバンドルのものであり、正しく機能していません。
どこに問題があるのか 考えている人はいますか?
apache-camel - osgi-bundle を ServiceMix にデプロイする正しい方法は何ですか?
Web サービスを扱う Apache ServiceMix のスターター アプリケーションを開発しようとしています。
1) アプリをビルドします (「mnv install」コマンドを使用)
2) ServiceMix にデプロイします (サーバー コンソールで「karaf@root> osgi:install mvn:com.company/ws-test-fuse/1.0.0-SNAPSHOT」コマンドを使用)。
3) どのようにインストールされたかを観察します ('osgi:list')
4) アプリを起動してみる
私はこれを得る:
すべてのmaven依存関係が自動的にダウンロードおよびインストールされるようにバンドルをインストールする正しい方法は何ですか?
また、すべての依存関係が osgi-bundles としても osgi-container にデプロイされるというのは正しいですか?
私のPOM.xmlは次のとおりです。
apache-karaf - サービス ミックス ブループリント機能を使用してネットワーク経由でファイルを転送する方法
私はapache-servicemix-4.3.1-fuse-01-15を使用しており、ホット デプロイメントを行っています。
以下に示すように、service-mix の deploy フォルダー内に 1 つの blueprint xml を配置しました。
ご覧のとおり、ローカル pc から別のコンピューターにファイルを転送したいと考えています。
IP をローカル ディレクトリ パスに置き換えると、正常に動作します。
ここで何がうまくいかなかったのか知りたいです。
ftp、sftps、または ftp を使用しますか? 私がやっていることは決してうまくいかないのですか? ユーザー名とパスワードについて言及する必要がありますか?
cxf - ブループリントを使用してCXFJAX-WSサーバーを構成する方法
単純なCXFJax-WsサーバーをServiceMixにデプロイしたいと思います。これは、サービスインターフェイスとimplクラスの両方を備えた1つのOSGIバンドルです。別のServiceMixサーバー(バージョン4.4.1)にデプロイする必要があるため、サーバーごとにURLアドレスを変更する必要があります。サーバー固有の構成をKaraf.cfgファイルで行い、残りをブループリントで行いたい。これはラクダを必要としません。ブループリントで何をすべきですか?特定のドキュメントが見つかりません。
spring - OSGiバンドルuriを使用したCamelxqueryエンドポイント
Camel(2.10.0)コンテキストを開始するOSGiバンドル(Karaf 2.2.4にデプロイされている)があります。Camelコンテキストのルートビルダーには、次のようなxqueryエンドポイントURIがあります。
コンテキストがそのURIを解決しようとしたとき、Camelバンドルが.xqファイルが存在する場所と同じクラスパスにないため、失敗しました。そこで、URL展開関数を作成しました。
の中へ
私はバンドルURIを扱っていたのでOsgiBundleResourcePatternResolver
、プロジェクトの初期の段階でClassPathScanningCandidateComponentProvider
(Spring 3.1.1)を扱っていました。XQueryComponent
残念ながら、Camelに自分のを使用させる方法が見つからないようですOsgiBundleResourcePatternResolver
。
- 私はこれを正しい方法で行っていますか?これを行う簡単な方法はありますか?
- もしそうなら、どうすればがURI
XQueryComponent
を理解できることを確認できますか?bundle:
bundle:
また、ラクダのコンポーネントがURIを理解できることを確認することはできますか?
jetty - ServiceMix (OSGI) で実行されている Jetty で ContextPath を設定する
これが私の環境の簡単な背景です。
以下に示すように MANIFEST.MF を作成することにより、myapp WAR を OSGi 準拠に変換しようとしています。この戦争を OSGi ベースのコンテナーである ServiceMix にデプロイしたいと考えていました。
マニフェスト.MF
ContextPath が null に設定されています。contextPath をどこでどのように設定すればよいですか? FileNotFound 例外で「null」文字列が確認される場合があります。
ログ:
myapp の私の web.xml は次のとおりです。
myapp、jetty、または serviceMix に問題がありますか? どんな手掛かり?
eclipse - Eclipse で Karaf バンドルをデバッグする: persist dev:watch URLs/IDs?
Apache Karaf で実行されている OSGi バンドルを Eclipse から簡単にデバッグできるようにしたいと考えています。これまでに特定した最も簡単な方法は、Karaf を開始する Java アプリケーション ランチャーを作成することです。バンドルが以前にインストールされていた場合は、アクティベーターでもブレークポイントを設定でき、すべて問題ありません。
問題は、コードに変更が加えられ、mvn install が呼び出され、次に Eclipse Karaf ランチャーが呼び出されたときに、古いキャッシュ バージョンのバンドルを実行していることです。コマンド ラインから Karaf を実行し、Maven URL を使用してバンドルをインストールし、dev:watch を使用して成功しました。しかし、dev:watch URL が永続化されていないことがわかりました。したがって、Eclipse から Karaf を起動すると、監視対象の URL がなく (以前の URL は Karaf がシャットダウンされたときに失われました)、バンドルの新しいバージョンはインストールされません。
dev:watch URL を永続的にする方法はありますか? URL を保持している可能性のあるプロパティを探したり、URL を指定するために使用できる Karaf コマンド ライン オプションを探したりしましたが、うまくいきませんでした。dev:watch コマンドを etc/shell.init.script に追加しようとしましたが、Karaf の起動時に「初期化スクリプトのエラー: コマンドが見つかりません: dev:watch.」というメッセージが表示されます。これは、コマンドが Karaf の起動シーケンスの早い段階で実行されたことを意味していると思います (dev 機能はまだ開始されていませんか?)。
Eclipse から Karaf で実行されているバンドルを簡単にデバッグすることを考えていなかった別の方法であっても、助けていただければ幸いです。目標は、コードが変更されるたびに osgi:install などの手動コマンドを使用する必要がないようにすることです。
java - キャメル| スケジューリングコンソールの必要性
プロジェクトでラクダ2.9.0を使用しています。さまざまなラクダのコンテキストに分割されたいくつかのルートがあります。各ラクダのコンテキストは個別にバンドルされ、ApacheKarafにデプロイされます。ここで、問題は2つの部分に分けられます。
1.)各ルートはスケジュールされたルートです。Quartzコンポーネントを使用して、各ルートでcron式を定義できますが、任意のルートをトリガー、停止し、任意のルートにcron式を配置できるコンソールが必要です(Webコンソールを介したルートのスケジュールは主な目的)。
2.)また、quartz.propertyを介した各ルートのcron式を構成しようとしました。しかし、誰かがApache Karafで実行時にcron式を変更したい場合は、デプロイされたバンドルを停止して、最初からやり直す必要があります。実行時にcron式の値を変更するために何ができるか。
どんな返事や助けも認められるでしょう。
Piyush
osgi - ブループリントルートの展開でカラフセラーが例外をスローする
http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/の下にある Karaf Cellar の例に従いました。
サービス (Bundle1)、サービス実装 (Bundle2)、クライアント (Bundle3) の 3 つの OSGi バンドルを作成しました。(Bundle1) と (Bundle2) を 1 つの karaf インスタンスにデプロイし、(Bundle1) と (Bundle3) を別の karaf インスタンスにデプロイして、2 つの karaf コンテナーを異なるマシンで実行しています。例に示されているように、すべてが正常に機能しました。Karaf コンテナー 2 からクライアント バンドルを削除し、設計図に記載されているキャメル ルート経由でサービスを呼び出したいと考えました。
上記のブループリントを karaf コンテナー 2 に展開するとすぐに、karaf コンテナー 1 で次の例外が発生します。このエラーの原因を特定できません。この問題に関するコメントをお待ちしております。
ありがとうございました。
java - Eclipse 以外の OSGi バンドル
Eclipse Indigo を使用して、OSGi Java Framework を使用していくつかのバンドルを開発しました。他のバンドルに依存し、メイン プログラムを実行するメイン バンドルがあります。Eclipse ですべてのバンドルを実行しようとすると、すべて正常に動作しますが、各バンドルを JAR として保存し、コマンド ラインで OSGi フレームワークNoClassDefFoundError
を起動すると、メイン バンドルを起動しようとすると例外が発生します。見つからないクラスは依存関係です。バンドルの残りのステータスは ACTIVE になり、メイン バンドルは解決済みになります。
使用しているすべてのライブラリ (mysql コネクタなど) を含むバンドルを作成し、これらのライブラリが必要なすべてのバンドルにこのバンドルをインポートしています。これがそれを達成するための最良の方法であるかどうかはわかりません。また、アプリケーションでスレッドを使用していますが、それらのいくつかは別のバンドルのメソッドを使用しています。それが問題の原因でしょうか?
私に何ができるか考えている人はいますか?Apache Karaf にもバンドルをインストールする必要があり、同じ結果が得られました。各バンドルの開始レベルと関係がありますか?