Jboss 如何在SEAM中的bean初始化链末尾调用启动bean

Jboss 如何在SEAM中的bean初始化链末尾调用启动bean,jboss,seam,jboss6.x,seam2,Jboss,Seam,Jboss6.x,Seam2,这是在JBoss 6上启动JBoss 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.se

这是在JBoss 6上启动JBoss 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

我的意图是在SeamFilter初始化后打印上面的消息(在JBoss6控制台上)。我该怎么做?

您可以在普通组件上尝试此注释。删除此组件上的
@Startup

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

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

如果只是在所有seam消息之后显示一些状态,那么至少有两种方法:

首先是使用Shervin的解决方案,并在
$jboss_HOME/server//conf/jboss-log4j.xml
中抑制
org.jboss.seam.servlet.Filter INFO
消息:

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

上述建议似乎不起作用。有没有办法使用带有优先选项的@Instal注释?我不知道如何使其工作。上面的建议产生了与以前类似的输出,并且在Servlet筛选器初始化后不会打印上面的行。我查看了代码public static void endReinitialization(){Contexts.startup(ScopeType.APPLICATION);Events.instance().raiseEvent(“org.jboss.seam.postReInitialization”);您的建议似乎是正确的,但由于某些原因没有起作用。您使用的是seam的哪个版本?您应该使用最新版本,因为它支持jboss 6。如果这不起作用,请尝试删除
@启动
组件中的
@旁路拦截器。
<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");
    }
}