問題タブ [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 - Karaf の JAX-RS バンドルで Spring Security を使用する
JAX-RS を使用していくつかの REST サービスを処理する OSGi バンドルがあります。このバンドルは、Apache CXF を使用して Karaf で実行されています。特定のパス/メソッドの組み合わせに基本 http 認証を適用する必要があります。私は Spring Security をいじくり回してきましたが、新しい 3.1 バージョンではこれを正確に行うことができるようですが、OSGi で動作させるのに多くの問題がありました。
テストとして、非常に単純なbeans.xmlファイル を作成しました。
さて、ここからが楽しい部分です...これまでのすべての読書から、これを機能させるにはweb.xmlが必要です。私が使用しようとしたこのサンプルのようなもの:
これら 2 つのファイルを組み合わせて使用しても機能しませんでした。そして、「うまくいかなかった」とは、何も起こらなかったことを意味します。エラー メッセージも例外もありません。Spring セキュリティを追加する前と同じようにバンドルが機能しました。問題は、web.xml をロードするためにバンドルが WAR または WAB である必要があることだと思います。これは正しいです?
さらに重要なことに、web.xml なしでスプリングを機能させる方法はありますか?
私はバンドルを CXF がロードするためのバンドルとして保持する必要があるという前提で作業しているので、それを WAR または WAB に変換することはできませんが、そうであるかどうかは完全にはわかりません。
ご協力いただきありがとうございます。
更新:
追加のグーグル検索を行った後、web.xml を使用する代わりにマニフェストに追加することについて言及しているフォーラムの投稿を見つけました。Web-FilterMappings: springSecurityFilterChain;url-patterns:="/*"
ただし、通常のバンドルの代わりに WAB を使用する必要があるようです。念のためマニフェストに行を追加しましたが、効果はありません。私の質問は次のようになっているようです: CXF で WAB を使用するにはどうすればよいですか?
更新 2: この質問は十分に長くないため...何が起こるかを確認するためだけに、intercept-url の代わりに Spring Security アノテーションを使用することにしました。セキュリティで保護されたパスにアクセスしようとすると、次の楽しいスタック トレースが表示されます。
spring の Web サイトによると、これはセキュリティで保護されたサービスに初めて匿名で接続しようとしたときに発生し、2 回目は発生しないとのことです。まあ、それは私にとって毎回起こります。例外から、マニフェストのエントリが取得されているように見えますが、問題は思っていたものとは異なる可能性があります。なぜこれが起こっているのか、誰にも考えがありますか?基本的な http 認証を機能させるために、beans.xml にいくつかのエントリがありませんか?
log4j - Apache Karaf で追加のファイルにログインします。
Apache Camel と Karaf の両方を使用するシステムがあります。
デフォルトの karaf.log ではなく、新しいログにログインするには特定のプロセッサが必要です。
ログ構成を担当する「org.ops4j.pax.logging.cfg」というファイルがあることに気づきました。
これは、いじる前のファイルです。
今、私は追加のファイルアペンダーを追加しました:
そして Camel から、DSL からログインしました:
「new.log」ファイルと「karaf.log」ファイルの両方にすべてを記録した結果。
問題は、特定のプロセッサの場合に備えて、「new.log」にログインするにはどうすればよいかということです。その他はkaraf.logに記録されます!!
java - OSGiバンドルは別のバンドルからSpringコンテキストファイルにアクセスします
複数のSpringプロジェクトとして存在する既存のアプリケーションがあります。プロジェクトAのSpringコンテキストXMLファイルは、を使用してBのSpringコンテキストXMLファイルを実装します。
しかし、私はそれを取得しFileNotFoundException
ます。これは、リソースがプロジェクトBのバンドルによって公開されていないことが原因であると思います。クラスにはアクセスできますが、ファイルにはアクセスできません。
この問題を調査するときの一般的なコメントは、Beanを直接注入しようとするのではなく、OSGiサービスを使用してサービスを注入することでした。ただし、これは既存のアプリケーションなので、全体を再配線することは避けたいと思います。
OSGiにリソースをエクスポートするように指示する方法はありますか?KarafでServiceMixを実行しています。
java - OSGi SOAP Web サービス クライアント
OSGi から動作する Web サービス クライアントを取得しようとしています。Felix をコンテナーとして使用しています。
これまで、Apache CXF を使用してみました。これは RPC/encoded であり、スタブを生成しようとするとサポートされないため、私の Web サービスでは機能しません。Apache Axis を使用してスタブを生成しましたが、バンドル内の依存関係に関する問題が発生しています。バンドルがデプロイされると、Apache バンドルの依存関係と共に依存関係が取得されます。
私は自分のビルドに maven を使用しており、maven-bundle-plugin を bundleall ゴールで使用して依存関係バンドルを取得しましたが、バンドルの依存関係で問題が発生します。バンドルを介したプラグイン可能な性質はまさに私が必要としているものなので、osgi を使用したいと思っていますが、バンドルの依存関係を追跡するのに多くの時間を費やしています。
依存関係を解決する方法など、OSGi から SOAP Web サービスを使用する明確な例はありますか?
java - 効率的な OSGi 開発ワークフロー
私は、karaf の上で機能として実行される多くのバンドルで構成される製品に取り組んでいます。通常、開発者は一度に 1 つのバンドルに取り組みます。私たちの通常の開発は、次のようなものです。コードを書き、コンパイルし、バンドルを展開フォルダーにコピーし、テストします。また、hotdeploy は、サーバーの再起動や機能のアンインストール/再インストールなしで機能としてインストールされた特定のバンドルをオーバーライドすることを拒否するだけであるため、サイクルが長くなる場合があることもわかりました。
私の質問は次のとおりです。コミュニティの誰かがより良い方法を持っていますか? 私たちのやり方は機能していますが、かなり遅くて非効率的だと感じています。誰かがもっと良いものを思いついたに違いありません!
編集:私の質問ではかなり不明確だったことに気付きました...私たちはKarafの下でEquinoxを使用しています。Eclipse と Maven も使用していますが、Maven の使用が適切かどうかはわかりません。
osgi - ApacheKarafとServicemix
Servicemixの代わりにKarafを使用している人はいますか?もしそうなら、どのようにしてこの決定に至ったのですか?ServicemixがKarafの周りに機能のレイヤーを追加していることを知っていますが、Karafが単独で使用されているかどうか、そしてその理由は...
java - ApacheKarafでのJavaヒープサイズの設定
これが重複していることをお詫びしますが、これがどこにも答えられていないようです。
Apache Karafを使用するときに最大Javaヒープサイズを増やすための最良の方法は何ですか?
現在、karaf.batファイルの次の行を変更しました。
set DEFAULT_JAVA_OPTS=-server -Xmx<NewMaxValue>M
。
batファイルを変更するのは最善の解決策ではないように感じます。さらに、どの設定ファイルにもこれを置く場所がないようです。
ありがとう
apache-karaf - Apache Karaf 2.2.3、featuresBootの問題
Karaf 2.2.3は最近リリースされ、ついにバンドル済みのspring-jms機能を備えています。作業を簡単にするために、他のデフォルトでfeaturesBootconfigプロパティに追加しました。
featuresBoot=config,ssh,management,spring-jms
ただし、Karafを起動すると、制御不能な動作をします。起動時にインストールされる場合とインストールされない場合があります。自動インストールされない場合は、コマンドラインから追加しようとします。
features:install spring-jms
そしてそれでさえ乱暴に振る舞います。下記参照:
これらは、installコマンドの連続実行です。最後の実行は機能します。
他の誰かがこの振る舞いを見ますか?またはそれを修正する方法を知っていますか?
cxf - CXFサービスリストのURLを上書きするにはどうすればよいですか?
私のWebサービスには/myapp/ admin/servicesのようなRESTエンドポイントURLがあります。設定org.apache.cxf.servlet.hide-service-list-page=false
すると、URLがCXFサービスリストに乗っ取られます。これは、リストのURLがorg.apache.cxf.transport.servlet.ServletControllerで相対的であるために発生します。
OK、結構です。URL構造で「services」というフレーズを使用するべきではありませんでした。Meaculpa。しかし、どうすればこれを修正できますか?ServletControllerのデフォルトの「/services」を上書きしたいのですが。そのクラスでsetServiceListRelativePath()を呼び出すためにコンテナが必要なだけですが、その方法がわかりません。これを行うための魔法のSpringスニペットがあると思いますか?
重要な場合は、TalendServiceFactoryにバンドルされているCXFを使用しています。
osgi - karafコンソールの「コマンドが見つかりません:grep」
ServicemixバージョンのFuseESB4.4.1に奇妙な問題があります。
コマンドの一部が読み込まれず、使用できない場合があります。通常、これはmeコマンドgrepで頻繁に使用される場合に発生します。これは次のようになります。
karaf@root>リスト| grepスプリング
コマンドが見つかりません:grep
ランダムのようですが、通常は再起動が役立ちます。以前のバージョンのFuseESBでは、これは時々発生しましたが、非常にまれで、現在は非常に頻繁に発生しています。誰かが助けてもらえますか、何が問題を引き起こしていますか?