我々は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の中で同じ達成するために
- どのように、可能かどうかを知りたいです。
- できない場合は、コードを使用してTomcatで同じ方法を達成する方法 が変更されます。つまり、WebLogicは、このデプロイメント記述オプションでカバー の下で何をしていますか?
私はこれを研究しようとしましたが、オプションの機能に関する情報は見つかりませんでした。オプションを設定する方法についての情報はありません。ユニークで識別WebLogic documentation
ありがとうございますが、私は尋ねる。クッキーを応答に明示的に追加するコードがなければ、Webロジック上で動作するサーブレットは応答内にCookieを表示します。これは、curl -cコマンドやwiresharkのようなもので見ることができます。これはTomcatの下では起こっていませんが、私はまだそれを達成するための理由とその方法を理解したいと思います。 –
あなたの質問は、クラスタ化されたアプリケーションにのみ関連するスティッキーセッションでした。しかし、デフォルトで作成されたセッションだけを望むならば、Tomcatもそれを行います。上記のように、request.getSession(true)はセッションオブジェクトをアプリケーションに返します。セッションを追跡するセッションCookieも自動的に応答に含められ、以降のすべての要求にはこのセッションCookieがそのヘッダーに含まれます。 https://tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Standard_Implementation – ramp
に記載されているように、Tomcatのセッションパラメータのいくつかをさらに調整することができます。さらに明確にするために、すべてのj2ee Webサーバーは自動セッションを提供しますアプリケーションへの機能を処理します。これには、セッションの作成、セッションを追跡するためのクッキー、およびこのクッキーを応答および後続の要求に含めることが含まれます。 weblogicがsession-paramを通してあなたに提供するものは、セッション(およびセッションクッキー)のさまざまな属性を微調整する能力です。 Tomcatは、セッションマネージャを使用して同じ調整機能を提供します。基本的なセッション処理はデフォルトで含まれている – ramp