0

マネージド Bean とフックの両方が同じ war にあります。Tomcat 7 で 6.1 CE を使用しています。

logout.events.pre に関連付けられたフックの実行メソッド中に、ApplicationScoped Bean から一部のデータを削除しようとしています。

run メソッドは HttpServletRequest で呼び出され、その HttpServletRequest の属性として、または HttpServletRequest から取得できる ServletContext の属性として Bean にアクセスできる必要があることを読みましたが、両方のメソッドが null を返します。

すべてのキーを列挙しましたが、そこにはありません。

必要なものを達成する方法を知っている人はいますか?

ありがとう。

    @Override
public void run(HttpServletRequest req, HttpServletResponse res) {

    System.out.println("In custom pre LogoutAction....");

    ServletContext servletContext = req.getServletContext();

// DataBean dataBean = (DataBean) servletContext.getAttribute("com.xvest.hooks.DataBean");

// DataBean dataBean = (DataBean) req.getAttribute("dataBean");

    // Find loggedInUser and impersonatedUser.
    ThemeDisplay themeDisplay = (ThemeDisplay) req.getAttribute("THEME_DISPLAY");

    User loggedInUser = themeDisplay.getRealUser();
    User impersonatedUser = themeDisplay.getUser();

    // Fetch CompleterHousehold for impersonatedUser.
    CompleterHousehold completerHousehold = dataBean.fetch(impersonatedUser, loggedInUser);

    // Delete loggedInUser from CompleteHousehold.viewers
    boolean result = completerHousehold.deleteViewer(loggedInUser);

    // If the delete returns true, there are no more viewers for this household, so delete the CompleterHousehold from DataBean.
    if (result)
        dataBean.delete(impersonatedUser);
}
4

0 に答える 0