Как вызвать начальный компонент в конце цепочки инициализации компонента в SEAM
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 ответа
Вы можете попробовать эту аннотацию на обычном компоненте. Удалить @Startup
на этом компоненте.
@Observer({"org.jboss.seam.postInitialization", "org.jboss.seam.postReInitialization"})
public void create() {
System.out.println("SERVER STARTED SUCCESSFULLY");
}
Если идея состоит только в том, чтобы показывать некоторый статус ПОСЛЕ всех сообщений шва, есть как минимум 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");
}
}