Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 野蝇“;“懒惰初始化”;过滤器,我能换一下吗?_Java_Spring_Jboss_Servlet Filters_Wildfly - Fatal编程技术网

Java 野蝇“;“懒惰初始化”;过滤器,我能换一下吗?

Java 野蝇“;“懒惰初始化”;过滤器,我能换一下吗?,java,spring,jboss,servlet-filters,wildfly,Java,Spring,Jboss,Servlet Filters,Wildfly,我想我已经发现Jetty和Wildfly在过滤器初始化的实现上有所不同 我有一个使用Tapestry、Spring和Hibernate的web应用程序。我正在尝试将它从Jetty迁移到Wildfly My web.xml有两个过滤器: 首先是OpenSessionInViewFilter(执行doInternalFilter时需要WebApplicationContext存在)。此筛选器必须位于Tapestry之前,以便hibernate会话包含针对后端数据库的所有Tapestry活动 其次是T

我想我已经发现Jetty和Wildfly在过滤器初始化的实现上有所不同

我有一个使用Tapestry、Spring和Hibernate的web应用程序。我正在尝试将它从Jetty迁移到Wildfly

My web.xml有两个过滤器:

首先是OpenSessionInViewFilter(执行doInternalFilter时需要WebApplicationContext存在)。此筛选器必须位于Tapestry之前,以便hibernate会话包含针对后端数据库的所有Tapestry活动

其次是Tapestry框架(w/spring集成)过滤器,它在其init方法中加载spring的WebApplicationContext

我在Jetty(也在Tomcat中)中运行此场景时没有出现问题,但当将其移动到Wildfly时,OpenSessionInViewFilter抛出了一个非法状态异常,告知未找到WebApplicationContext

我试着调试它,发现Wildfly不会调用init Filter方法,直到该过滤器收到第一个处理请求。我同意在某些情况下这可能是一种性能改进,但在我当前的情况下这是一个问题

有没有办法在应用程序启动时告诉Wildfly初始化过滤器

谢谢。

我发送了一封邮件,通过底拖子系统中的配置选项公开此功能

您现在可以添加

<servlet-container name="default" eager-filter-initialization="true">

要启用此功能。

我发送了一个消息,通过底拖子系统中的配置选项公开此功能

您现在可以添加

<servlet-container name="default" eager-filter-initialization="true">


要启用此功能。

这看起来是我们可以添加到wildfly/undertow的一个不错的增强功能,您可以为此创建jira吗?好的,你是说不可能做到这一点(当然,除非你改变源代码):D所以我将按照你的建议添加一个JIRA。如果你想,你可以添加一个答案,说“这是不可能的,只需填写一个JIRA”,这样我会将它标记为正确答案。谢谢我已经填充了一个JIRA,下面是链接:这看起来像是一个很好的增强,我们可以添加到wildfly/undertow,你能为这个创建JIRA吗?好的,你是说不可能做到这一点(当然,除非你改变源代码):D所以我将按照你的建议添加一个JIRA。如果你想,你可以添加一个答案,说“这是不可能的,只需填写一个JIRA”,这样我会将它标记为正确答案。谢谢我已经填写了一份JIRA,下面是链接:谢谢!!你不仅提供了答案,还提供了解决方案。再次感谢你谢谢你!!你不仅提供了答案,还提供了解决方案。再次非常感谢你