2017-06-28 18 views
0

我々はWebLogicからTomcatにいくつかのレガシーアプリケーションを移植しています。ウェブロジックでは、これらのアプリケーションは、weblogic.xmlデプロイメント記述子に次き:WebLogicの<session-param>設定要素は実際に何をしますか?

<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.0//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-web-jar.dtd"> 
<weblogic-web-app> 
    <session-descriptor> 
... 
     <session-param> 
       <param-name> 
         CookieName 
       </param-name> 
       <param-value> 
         jsessionid 
       </param-value> 
     </session-param> 
... 
    </session-descriptor> 
</weblogic-web-app> 

どういうわけか、この要素を含めることは、スティッキーセッションを有効にすると、ブラウザに応じてクッキーを返送するアプリケーションを可能にします私たちが達成しようとしているものです。アプリケーションサーブレットには、これを実現するためのクッキーを持つコードはありません。コンテナオプションではなく、従来の外部ロードバランサを使用してバランシングを実行しています。

これでTomcatに移りました。同様の宣言的手段によってコードを変更することなく、同じ機能を維持したいと考えています。しかし、Tomcatでこれを行うのと同様の記述子があるようには見えません。

我々は

curl -c cookie {url}は、WebLogicの下ではなく、Tomcatの下のファイル「クッキー」でクッキーが保存されますことを見つける2つの環境でアプリケーションをテストします。

だから私は 変更をコーディングすることなく、Tomcatの中で同じ達成するために

  1. どのように、可能かどうかを知りたいです。
  2. できない場合は、コードを使用してTomcatで同じ方法を達成する方法 が変更されます。つまり、WebLogicは、このデプロイメント記述オプションでカバー の下で何をしていますか?

私はこれを研究しようとしましたが、オプションの機能に関する情報は見つかりませんでした。オプションを設定する方法についての情報はありません。ユニークで識別WebLogic documentation

答えて

0

セッション-paramはあなたがメモリ内にある

HttpSession session = request.getSession(true);

のHttpSessionの最初の呼び出し時に、アプリケーション・サーバーによって作成されたセッションオブジェクトをカスタマイズすることができます(主に)キャッシュされたオブジェクトを参照してください。アプリケーションサーバーがIDを取得します。 idは、セッションクッキーと呼ばれるリクエストの間を行き来するようになっています。 request.getSession()に対する後続のリクエストは、リクエストからクッキーを取得し、idを読み取り、対応するSessionオブジェクトを取得しようとします。

この背景には、weblogicがweblogic.xmlのsession-paramタグでパラメータ化できるようにする、セッションCookieとセッションCookieのいくつかのパラメータがあります。例としては、cookie-name、cookie-domain、cookiemaxageなどが挙げられます。

スティッキセッションとロードバランシングは、セッションディスクリプタのクッキー設定とは関係ありません。あなたは、IIS用のWebLogicプラグインは、Apache

  • 外部ロードバランサ
  • WeblogicのHttpClusterServletを(ソフトウェアロードバランサ)
  • そのすべてのhere 説明

    1. を使用して、WebLogicクラスタ内のロードバランシングを実現することができますソフトウェアロードバランサが説明されていますhere

    +0

    ありがとうございますが、私は尋ねる。クッキーを応答に明示的に追加するコードがなければ、Webロジック上で動作するサーブレットは応答内にCookieを表示します。これは、curl -cコマンドやwiresharkのようなもので見ることができます。これはTomcatの下では起こっていませんが、私はまだそれを達成するための理由とその方法を理解したいと思います。 –

    +0

    あなたの質問は、クラスタ化されたアプリケーションにのみ関連するスティッキーセッションでした。しかし、デフォルトで作成されたセッションだけを望むならば、Tomcatもそれを行います。上記のように、request.getSession(true)はセッションオブジェクトをアプリケーションに返します。セッションを追跡するセッションCookieも自動的に応答に含められ、以降のすべての要求にはこのセッションCookieがそのヘッダーに含まれます。 https://tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Standard_Implementation – ramp

    +0

    に記載されているように、Tomcatのセッションパラメータのいくつかをさらに調整することができます。さらに明確にするために、すべてのj2ee Webサーバーは自動セッションを提供しますアプリケーションへの機能を処理します。これには、セッションの作成、セッションを追跡するためのクッキー、およびこのクッキーを応答および後続の要求に含めることが含まれます。 weblogicがsession-paramを通してあなたに提供するものは、セッション(およびセッションクッキー)のさまざまな属性を微調整する能力です。 Tomcatは、セッションマネージャを使用して同じ調整機能を提供します。基本的なセッション処理はデフォルトで含まれている – ramp

    関連する問題