JSPとサーブレットを使用してWebアプリケーションを開発しています。
ログイン用のサーブレットフィルターを開発しました。ユーザーがログインしているかどうかを確認します。ユーザーがログインしている場合は、要求されたリソースへのアクセスを許可し、そうでない場合は要求をログイン ページにリダイレクトします。そして、それは完璧に機能します。
Web.xml
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.myfilter.MyFilter</filter-class>
<init-param>
<param-name>PARAM_NAME_HERE</param-name>
<param-value>PARAM_VALUES_HERE</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
上記のコードをTomcat
Home-> conf-> Web.xmlに配置すると、フィルターは .xml にデプロイされたすべてのアプリケーションに適用されましTomcat
た (これは、Glassfish で EAR ファイルに対して達成したいことです)
しかし、いくつかの理由から、Glassfish に移行することにしました。そして、 2 つのアプリケーション (WAR)とEAR
を含むファイルを作成しました。フィルタはパッケージに入っていますが、 にはありません。1.Login
2. Profiles
com.filter
Login Application
Profiles
XML
私の質問は、上記のコードをどこに配置すればよいEAR
ですか?
アップデート1
defualt-web.xml
ディレクトリの下にあるXMLコードの上に置くと、アプリケーションには適用できますが、同じファイルにあるアプリケーションにglassfish\domains\domain1\config\
は適用できLogin
ません。Profiles
EAR
ログにエラーがあります:
Exception starting filter MyFilterName java.lang.InstantiationException
.....
.....
原因: java.lang.ClassNotFoundException: com.myfilter.MyFilterName
[注: フィルターはLogin
アプリケーション (WAR) 内にあり、アプリケーション (WAR) 内にはありませんProfiles
]
では、これをProfiles
(EARのすべてのWARに)適用するにはどうすればよいですか。