問題タブ [liferay-hook]
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.
liferay - Liferay Model Listeners Asynchronous でコードを作成する (同時実行を使用)
問題
当社の liferay システムは、他の Web アプリケーションとデータを同期するための基盤です。
そしてModel Listeners
、その目的のために使用します。
リスナーを介した Web サービスの呼び出しとデータベースの更新が多数あるため、liferay の特定のアクションが遅すぎます。
例: liferay に を
追加User
する場合、多くの Web サービス呼び出しを起動して、ユーザーの詳細を追加し、他のシステムをユーザーデータで更新し、いくつかの liferay カスタム テーブルも更新する必要があります。そのため、ユーザーの追加に時間がかかり、まれにリクエストがタイムアウトになることがあります。
のコードUserListener
はユーザーの詳細のみに依存し、例外があったとしてもUserListener
ユーザーは Liferay に追加されるため、次の解決策を考えました。
また、リスナーでコードを実行中に例外が発生した場合に問題を修正する、liferay のスケジューラーもあります。
提案された解決策
UserListener
Concurrency API を使用してコードを非同期にすることを考えました。
だからここに私の質問があります:
- モデル リスナーに並行コードを含めることは推奨されますか?
- はいの場合、トランザクションやその他のものなど、このコードを介して Liferay カスタム テーブルも更新すると、悪影響がありますか?
- このアプローチの他の一般的な長所と短所は何ですか?
- ユーザー エクスペリエンスを妨げることなく、他のシステムをリアルタイムで更新できる、他に良い方法はありますか?
この件についてご協力いただきありがとうございます
search - strutsで検索キーワードを取得 Liferay
検索のポートレットで検索のキーワードを取得したい。URL に「struts_action=/search/seach」が表示されるのを見た後、strut-config.xml を探して、次を見つけました:
action path="/search/search" forward="portlet.search.search"
私はストラットをやろうとしていますが、ストラットについてあまり知らず、うまくいきません。これは「liferay-hook.xml」のコードです:
portal.properties: auth.public.paths=/検索/検索
SearchAction.java:
私が行方不明または間違っていることについて何か考えはありますか? キーワードを取得してから、通常どおり検索を実行したいだけです。ありがとう!
liferay - Liferay の marketplace-portlet がバージョン 6.2 で正しく展開されていませんか?
エラーなしでLiferay 6.1のフックを作成しましたが、バージョン6.1でも同じことをしようとしています
バンドルされたバージョンでフックをデプロイすると、次のログが得られました。
ご覧のとおり、次のメッセージが表示されPlugin encrypted-autologin-hook requires marketplace-portlet
ます。ドキュメントには、(既にインストールされている) marketplace-portlet をインストールする必要があることを意味すると説明されています。
ドキュメントの手順に従い、プラグイン SDK (Liferay と同じバージョン) をダウンロードし、コンパイルして、WAR ファイルを取得しました。念のため、「portal-compat-hook」についても同じ手順に従いました。最後に、両方の戦争パッケージをインストールしました。
しかし、フックを再デプロイすると、同じログ行が表示されます。マーケットプレイス ポートレットに既知の問題はありますか?
Liferay logging guideに従っているにもかかわらず、私のフックが機能していないようです (アクションが観察されません) 。また、何もログに記録していません。次に、フックが実行されず、表示される唯一のエラーが marketplace-portlet の欠如であると仮定します。では、このポートレットが既にバンドルにインストールされていて、再度インストールしても、このエラーが表示されるのはなぜですか?
liferay - サインイン ポートレットのフックのカスタマイズ
liferay 6.0 で signIn ポートレットのフックを開発しました。アカウント作成ページのラベルをカスタマイズする必要があります。次のコードをカスタマイズする必要があります
次のように出力しています
どこからどのファイル (必須) が来るのかわかりません。ラベルをカスタマイズするにはどうすればよいですか。
liferay - 起動時に Liferay フックがロードされない
ドキュメント メディア ポートレット用のフックを作成しました。基本的に、ドロップリストのいくつかのオプションを削除しました。フックを展開すると、すべて正常に動作しますが、サーバーを再起動するたびに、削除したオプションが再び表示されるため、展開されているのはフックではないようです。
誰でもこの問題の原因を教えてもらえますか?