Как вызвать начальный компонент в конце цепочки инициализации компонента в SEAM - PullRequest
2 голосов
/ 23 июня 2011
14:00:04,449 INFO  [org.jboss.seam.servlet.SeamFilter] Initializing filter:
 org.jboss.seam.servlet.characterEncodingFilter
14:00:04,450 INFO  [org.jboss.seam.servlet.SeamFilter] Initializing filter:
 org.jboss.seam.web.redirectFilter
14:00:04,451 INFO  [org.jboss.seam.servlet.SeamFilter] Initializing filter:
 org.jboss.seam.web.exceptionFilter
14:00:04,452 INFO  [org.jboss.seam.servlet.SeamFilter] Initializing filter:
 org.jboss.seam.web.multipartFilter
14:00:04,452 INFO  [org.jboss.seam.servlet.SeamFilter] Initializing filter:
 org.jboss.seam.web.identityFilter
14:00:04,453 INFO  [org.jboss.seam.servlet.SeamFilter] Initializing filter:
 org.jboss.seam.web.rewriteFilter

Это последний набор строк, который печатается после запуска приложения JBoss SEAM на JBoss 6.

@Name("myStartup")
@Startup
@Scope(APPLICATION)
@BypassInterceptors
public class MyStartup {

    @Create
    public void create() {
        System.out.println("SERVER STARTED SUCCESSFULLY");
    }
}

Я намеревался напечатать вышеупомянутое сообщение (на консоли JBoss 6) после инициализации SeamFilter. Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 03 июля 2011

Если идея состоит только в том, чтобы показывать некоторый статус ПОСЛЕ всех сообщений шва, есть как минимум 2 способа:

Во-первых, использовать решение Шервина и подавить org.jboss.seam.servlet.Filter INFO сообщения в $JBOSS_HOME/server/<your-profile>/conf/jboss-log4j.xml:

<category name="org.jboss.seam.servlet.Filter">
   <priority value="ERROR"/>
</category>

Или реализовать фильтр:

@Scope(APPLICATION)
@Name("com.example.seam.myFilter")
@BypassInterceptors
@Filter(within={"org.jboss.seam.web.rewriteFilter"})
public class MyFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("SERVER STARTED SUCCESSFULLY");
    }
}
0 голосов
/ 24 июня 2011

Вы можете попробовать эту аннотацию на обычном компоненте.Удалите @Startup на этом компоненте.

@Observer({"org.jboss.seam.postInitialization", "org.jboss.seam.postReInitialization"})
public void create() {
    System.out.println("SERVER STARTED SUCCESSFULLY");
}
...