指定されたテンプレートの1つを使用して、新しいHybris拡張機能を作成しました。
ビルドは成功し、サーバーを起動することもできます。
しかし、HACからWebリンクを開くと、エラーが発生します"現在のURLに関連付けられているCMSSiteが見つかりません"。
この問題を解決または調査するための提案はありますか?
500エラーを回避するには、hostsファイルマッピングを使用するか、site-IDパラメーターを使用する必要があります。
これらのリンクをたどってください
https://wiki.hybris.com/display/accdoc/Just+One+Storefront
https://help.hybris.com/6.3.0/hcd/8ae0711f86691014877ae05249b2f5ac.html (Hybris 6)
管理者権限がある場合は、ホストファイルに次のエントリを追加することをお勧めします。
127.0.0.1 hybris.local
[例]
Etcホストの変更により、アクセラレータはURLからサイト(CMSSites)を識別できます。これにより、URLがすっきりときれいになります。
ホストファイルの変更後、このようなサイトにアクセスできます
http://hybris.local:9001/yacceleratorstorefront /
これを行わない場合は、次のような追加のリクエストパラメータでサイトを識別する必要があります
http:// localhost:9001/yacceleratorstorefront /?site = hybris&clear = true
エラー「現在のURLに関連付けられているCMSSiteが見つかりません」。
これは、アクセスしたいサイトをハイブリスに伝えていないためです。
それを行うには3つの方法があります
最初のリクエストでsiteIDをリクエストパラメータ(?site = SiteID)として渡すだけで、Hybrisがアクセスしようとしているサイトを理解するのに役立ちます。 powertoolsサイトにアクセスしようとすると、URLは https:// localhost:9002/yacceleratorstorefront?site = powertools になります。
DNS名としてsiteIDを使用してサイトにアクセスします。 <siteID>.local
を使用して127.0.0.1ホストを作成できます。 powertools(powertoolsのCMSSite ID)にアクセスし、ホストファイルに127.0.0.1 powertools.local
のようなエントリを追加してから、 http://powertools.local:9001 /)を使用してサイトにアクセスするとします。 localhostの代わりにyacceleratorstorefront /
CMSSiteのurlPatternsに、選択した新しい正規表現を追加します。あなたが望むようにあなたのサイトにアクセスできるように。ローカルホストのURLのみを使用し、?site = powertoolsを渡さずにサイトにアクセスしたいとします。したがって、(?i)^https?://[^/].*$
のような新しい正規表現をpowertoolsCMSSiteのurlPatternsに追加する必要があります。これで、 https:// localhost:9002/yacceleratorstorefront / を使用してpowertoolsサイトを直接開くことができます。
Impexを使用してそれを行うこともできます
$siteUid=mysite
# CMS Site
INSERT_UPDATE CMSSite ; uid[unique=true] ; urlPatterns ;
; $siteUid ; (?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=$siteUid)(|\&.*)$,(?i)^https?://$siteUid\.[^/]+(|/.*|\?.*)$,(?i)^https?://[^/].*$ ;
詳細を見つける ここに答える
ホストエントリに加えて、Webサイトに適切な正規表現を追加してください。
CMSサイトには、urlPatternsという属性があります。これは、ユーザーがアクセスしようとしているストアフロントを判別するためにWebサイトのCMSフィルターが一致する正規表現のリストです。
最も簡単なことは、以下のような正規表現をCMSサイトに追加することです。
(?i)^https?://[^/]*/yacceleratorstorefront((?![\?\&]site=).)*
実行時に、hybris Management Console(hMC)で実行できます。 WCMS Webサイトの[サイト名のプロパティ]タブに移動し、[URLパターン]セクションを編集します。
変更を永続的にするには、初期化のプロジェクトデータフェーズ中に実行されるCMSサイトセットアップImpExスクリプトに適切なコードを追加します。電化製品店頭用
# CMS Site
UPDATE CMSSite;uid[unique=true];urlPatterns;
;electronics;(?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=electronics)(|\&.*)$,(?i)^https?://electronics\.[^/]+(|/.*|\?.*)$,(?i)^https?://api\.hybrisdev\.com(:[\d]+)?/rest.*$,(?i)^https?://[^/]*/yacceleratorstorefront((?![\?\&]site=).)*;
この問題は通常、サーバーが満たされていないSpringBeanの依存関係で起動された場合に発生します。サーバーの起動ログをチェックして、どの特定のBeanが初期化に失敗したかを確認してください。