0
からの移行バルブjavacode私は、Tomcat 8.5へのTomcat 7から、当社のカスタム・バルブ・コードのいずれかを移行する必要があります。のTomcat 8.5:Tomcatの7
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import org.apache.catalina.Container;
import org.apache.catalina.Manager;
import org.apache.catalina.Session;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ValveBase;
public class SessionManagerValve extends ValveBase {
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
// ...
}
public HttpSession findSession(String id, boolean updateLastAccessTime) {
try {
Container container = getContainer();
// works with Tomcat 7.x, but not with Tomcat 8.5 anymore...
Manager man = container.getManager();
Session sess = man.findSession(id);
return sess.getSession();
} catch (Exception e) {
return null;
}
}
}
Container
インターフェースはもうgetManager()
方法を提供していません。 Tomcat移行ガイドによれば、Manager
へのアクセスはContainer
からContext
に移動しました。
ValveBase
オブジェクトからManager
にアクセスする方法を教えていただけますか?事前に
おかげで、 ライナー
EDIT:コンテキスト設定がある - として正しく答えに注意 -
<Context path="" ...>
<Valve className="SessionManagerValve" />
</Context>
正解、getContaiこの場合、ner()はorg.apache.catalina.core.StandardContextのインスタンスを返します。ありがとうございました! –