問題タブ [orchestra]
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 - MyFaces Orchestra の「conversationContext」GET パラメータを静的リソース (css、画像) から削除する
MyFaces Orchestra は?conversationContext=x
、ページ上の各リソースに を追加します。プロジェクトの公開部分 (管理部分のみ) には会話スコープを使用していないため、次の 2 つの理由からそのパラメーターを削除したいと考えています。
- ブラウザの静的リソースのキャッシュを壊します
- それは醜いです :)
Orchestra のソース コードを調べて、おそらく何かを回避しようと思いますが、私が知らないこのためのオプションがあれば最高です。
java - 警告: 破棄コールバックを登録できませんでした
15:11:14,676 WARN FacesRequestAttributes:121 - FacesRequestAttributes がそのようなコールバックをサポートしていないため、属性 'purchaseController' の破棄コールバック [org.springframework.beans.factory.support.DisposableBeanAdapter@1059fd6] を登録できませんでした
この警告メッセージは私のログによく出てきます。有効期限が切れるたびに、すべてのマネージド Bean に対して。MyFaces Orchestra を使用しているため、一定時間後に有効期限が切れます。
で定義しorg.springframework.web.context.request.RequestContextListener
ましたweb.xml
が、クラスパスにSpring jarのみがありません(つまり、クラスロードの問題ではありません)
FacesRequestAttribute のドキュメントには次のように書かれています。
注: ServletRequestAttributes とは対照的に、このバリアントは、リクエスト スコープでもセッション スコープでも、スコープ属性の破棄コールバックをサポートしていません。このような暗黙の破棄コールバックに依存している場合は、web.xml で Spring RequestContextListener を定義することを検討してください。
はpurchaseController
、実際には単純なマネージド Bean (何も拡張せず、実装のみSerializable
) であり、 で注釈が付けられてい@Controller
ます。
アップデート1:
中の豆が影響を受けているようです@Scope("request")
。@Scope("session")
したがって、この警告が適切なフローに危険をもたらすかどうかを知りたかったのです。つまり、これらのコールバックが本当に必要な場合です。そうでない場合は、lo4j 構成で警告をスキップします。
更新 2:
もう少し掘り下げたところ、これは時々しか起こらないようです. リスナーが使用されている場合、 ではなくをRequestContextHolder.currentRequestAttributes()
返します。そのため、リスナーが機能せず、現在の属性が に設定されないことがあるようです。ServletRequestAttributes
FacesRequestAttributes
RequestContextHolder
更新 3:
のデバッグをオンにしましRequestContextListener
た。結果は次のとおりです。
Bean へのアクセスが試行される前に、リクエストが破棄されたようです。これは非常に奇妙です。これは、リスナー処理のサーブレット コンテナの実装に問題がある可能性がありますか?
jsf - オーケストラとRichFacesの問題
アプリケーションではOrchestraとRichFacesを使用しています。アプリケーションのページにアクセスすると、次のエラーが何度も発生し、ページが読み込まれません。
問題の核心は、認証に使用するフィルターだと思います。そのコードは次のとおりです(conversationControllerは会話スコープのBeanです)。
jsf-2 - MyFaces Orchestra を使用している場合、別のビューに移動するときに conversation.access Bean が削除されない
JSF 2、Spring、および Hibernate を使用してアプリケーションを構築しています。MyFaces Orchestra は、アプリケーションのほとんどのページで使用している会話スコープを提供するために使用されています (Hibernate セッションの Orchestra の管理を利用するため)。すべての Bean は conversation.access スコープを使用するように宣言されています。これは、(Orchestrator のドキュメントによると) ユーザーがそのバッキング Bean インスタンスへの参照を含まないページに移動するとすぐに、Bean がスコープから削除されることを意味するはずです。 .
私が遭遇している問題は、会話を明示的に無効にせずにビューから道をナビゲートした場合、後でそのビューに戻った場合でも、以前と同じデータが残っていることです。すべてのバッキング Bean に ConversationBindingListener メソッドを実装しましたが、それらがいつ会話から削除されるかを確認でき、多くの場合、そうではないことがわかります。
問題をさらに複雑にしているのは、一部のページ (ビュー) に移動するとバッキング Bean が削除され、他のページには移動しないことです。おそらく、EL 内の他のバッキング Bean への意図しない参照がページにあったためだと思いましたが、何も見つかりませんでした。また、この問題は、conversation.access スコープ Bean を持つ 1 つのページから、別の conversation.scoped Bean を使用する別のページに移動したときにのみ発生したのではないかと考えました。ただし、会話から削除された場合、そのページには conversation.access スコープ Bean への参照も含まれます。
先に述べたように、Conversation.getCurrentInstance().invalidate() を使用して会話を明示的に無効にすることは機能します。ただし、ユーザーがナビゲーション リンクの 1 つをクリックするだけでビューを離れることができるという非常に一般的なユース ケースであるため、すべてのユース ケースで会話を明示的に無効にすることはできません。
追加の詳細: Hibernate 3.6 (JPA の代わりに) を使用しているため、HibernatePersistenceContextFactoryを使用する必要がありました。
- MyFaces オーケストラ (myfaces-orchestra-core20-1.4.jar)
- JSF 2 (モハラ 2.0.4)
- スプリング 3.0
- プライムフェイス 2.2.1
- リッチフェイス 4.0.0
これが私の Spring コンテキスト構成の外観です (オーケストラの場合)。
JSF バッキング Bean 宣言の例をいくつか示します。
tomcat - JSF 2.0/Tomcat/ Apache Orchestra @InitView が Bean にアクセスすると無視されるようです... Init 関数が実行されていません
私はこれを解決するために何時間も試みてきましたが、何が問題なのかわかりません。私がやりたいことは、フォーム入力を取得してデータベースに永続化することです。私はこれをまったく同じ方法で何百万回も実行しましたが、問題に遭遇したことはありません。
これが私のフォームです(addPerson.xhtml)
これは私のビーンです:
そして親:
}
何をしようとしても、@InitView はまっすぐに無視され、永続化しようとすると、人は null になります...どうすればよいですか? どこに問題があるのか わからないので、ヒントを得るのに非常に役立ちます...これが100万回前に機能したという事実は、ただイライラしています---追加のコードが必要な場合はコメントを残してください/情報。どうもありがとう!
コンソールに次のエラー出力が表示されていることに気付きました。
私はこれがどこから来ているのか分かりません...
java - 静的リソースの Orchestration コンテキスト パラメータを削除するにはどうすればよいですか?
conversationContext
適切なブラウザー キャッシュを提供するために、Apache MyFaces Orchestra が css ファイルへの要求に対してすべての要求に追加するパラメーターを削除したいと考えています。
Bozhoが示唆したように、Orchestrator が探している属性を設定するフィルターを実装しました。
それはうまくいきません.パラメータはまだすべてのリクエストに追加されています. デバッグ中に、フィルタが jsf サイトへのリクエストによって最初にヒットすることがわかりました。確かにそのリクエストに を含めたいconversation context
ので、フィルターはリクエストをチェーン内の次のフィルターに直接転送します。フィルターにヒットする次のリクエスト (通常は css ファイルのリクエスト) は、すでにconversation context
リクエストに含まれています。
奇妙なことに、フィルターを変更して常に属性を設定すると、すべてのリクエストにconversation context
属性がなくなります。ただし、これconversation context
は jsf サイトのリクエストにも含まれていないことを意味します (ただし、含まれている必要があります)。
conversation context
jsf サイトの生成された html 内の css ファイルへのリンクにも属性が含まれているか、フィルターの実装に依存していないことに気付きました。この理由で、2 番目のリクエストにはすでにconversation context
パラメータが含まれていると思いますか?
conversation context
属性が設定されていないリクエストだけでなく、Orchestrator がすべてのリクエストにパラメーターを追加する理由がわかりません。
正しく機能するようにフィルターを実装するにはどうすればよいですか?
php - 書き込みアクセス権のない Yii の assets フォルダー
PHP Yii アプリを Orchestra (https://www.engineyard.com/products/orchestra/) にデプロイしようとしています。多くのクラウドベースのプラットフォームと同様に、このプラットフォームでは書き込み権限が許可されていません。
システムの tmp フォルダに配置することで、Yii が必要とする「ランタイム」ディレクトリを回避することができました。しかし、私は「資産」フォルダにこだわっています。Yii には、書き込み可能でパブリックにアクセス可能なフォルダーが必要です。
これを回避する方法はありますか?
ajax - JSF 'Tab' Bean スコープ
2 つのページと両方のページに 1 つのバッキング Bean を持つ webapp を作成する必要があります。を試してみ@SessionScoped
ましたが、ブラウザで別のタブを開くと、前のタブと同じデータが表示されます。
を使用しようとしMyFaces Orchestra
ましたが、AJAX リクエストごとにバッキング Bean が作成されます。
問題を解決するには?
事前に感謝、イリヤ
php - Nginx & Orchestra PHP Cloud で URL を書き換える方法
Apache 環境から Engine Yard の Orchestra PHP Cloud に移行しています。アプリケーションの URL 書き換えルールに対応する方法がわかりません。このために提供されるドキュメントは非常に限定的で基本的なものであり、次の場所で確認できます。
https://support.cloud.engineyard.com/entries/21066927-orchestra-php-cloud-service-overview
これは私が今日使用する .htaccess です。これについてどうすればよいかについて、いくつかの意見をいただければ幸いです。
spring - 春の会話範囲
spring と jsf 1.2 で動作する Java Web アプリがあります。
また、Conversation スコープのフレームワークとして Apache Orchestra を使用します。
しかし、オーケストラには常に問題があり、最後の問題は、オーケストラの ConversationManager がシリアル化をサポートしていないため、セッションをシリアル化して別のサーバー インスタンスにレプリケートできないことです。ただし、セッションの複製が必要です。そのため、オーケストラを取り除き、会話の範囲に代替手段を使用することにしました。実際、会話は主にリクエスト スコープを拡張するために使用されるため、ビュー スコープに切り替えると問題が解決する可能性があります。
- 会話を取得したりスコープをSpringカスタムスコープとして表示したりするために使用できるライブラリを誰かが知っているでしょうか?
- シームへの切り替えはオプションではありません。スプリングと組み合わせたコードが多すぎます。jsf 2 に切り替えることで問題を解決できますか?
- それとも、誰かがオーケストラの会話を含むセッションを連載したのでしょうか?
- 何か案は?