WebLogic Portal では、特にサーバ名やポート番号が変更された場合などでも途切れることなくドメインからドメインに転送できる、ポータル Web プロジェクト内のポータル リソースへの URL を簡単に作成できる拡張可能なメカニズムがあります。この URL 作成メカニズムを使用すると、セキュアな URL と非セキュアな URL (https と http) の間で切り替えることもできます。
ポータブル URL の作成には、次の 2 つの要素が必要です。
url-template-config.xml ファイルには、ユニークな名前を持つ複数の URL 「テンプレート」が含まれます。これらのテンプレート URL には、アクティブ サーバから読み込まれる url:domain、url:port などの変数が含まれます。<render:*Url> JSP タグには、url-template-config.xml で URL テンプレート名を指定できる「template」属性があります。
次の例は、JSP タグがテンプレートを使用して URL を作成する方法を示しています。
url-template-config.xml | <render:resourceUrl> |
url-template-config.xml のサンプル URL テンプレートを次に示す。 <url-template name="secure-url"> https://{url:domain}:{url:securePort}/{url:path}?{url:queryString} </url-template> |
テンプレートを使用して <render:resourceUrl> JSP タグが URL を作成する方法を次に示す。 <% String reportpath = "reports/report1.html"; %> <a href="<render:resourceUrl template="secure-url" path="<%=reportpath%>"/>"> |
WebLogic Portal で提供される url-template-config.xml にある任意の URL テンプレートを使用でき、任意の数のテンプレートをファイルに追加できます。
次の変数を、URL テンプレートの構築に使用できます。
{url:domain} - 現在のリクエストからサーバ名を読み込む。
{url:port} - 現在のリクエストからサーバのリスン ポート番号を読み込む (下記のトラブルシューティングを参照)。
{url:securePort} - 現在のリクエストからサーバの SSL ポート番号を読み込む (下記のトラブルシューティングを参照)。
{url:path} - Web アプリケーションの名前を読み込む。Web アプリケーションのすべてのリソースへの URL は、Web アプリケーション ディレクトリを基準としています。
{url:queryString} - URL に対する queryString 変数を読み込む。
プロキシ サーバを使用したり、非セキュアなポートとセキュアなポートの間で切り替えているとき、{url:port} または {url:securePort} 変数を使用している場合は URL が解決されないことがあります。これは、その値に対する変数がリクエストから読み込まれるためです。たとえば、非セキュアなポート (ポート番号 80) にいるユーザが {url:securePort} 変数を使用する URL テンプレートで作成されたセキュアな https リンクをクリックすると、request (80) というポート番号が {url:securePort} 変数に対して使用されますが、これは非セキュアなポートでセキュア リクエスト (https) を作成します。プロキシ サーバ (ポート 80) にいるユーザがプロキシ サーバ (ポート 443) の外にあるリソースへのリンクをクリックした場合も同様です。
どちらの場合も、正しく解決される URL を取得するように、URL テンプレートにポート番号をハード コーディングする必要があります。
ポータル Web プロジェクトに自動的に作成された url-template-config.xml ファイルにも WSRP ポートレット用の URL テンプレートと変数が含まれます。WSRP プロデューサになる場合は、これらのテンプレートをファイルに残す必要があります。