2011-06-10 62 views
0

我有一个单例,我必须在我的过滤器中实例化,出于某种原因,我无法在第一次尝试时得到它的实例。 (部署在JBoss EAP 5.1中的应用程序)这个没有任何修改的解决方案在Jetty应用服务器上工作得很好。非常感谢您提前回答。如何在JBoss中获取单例的实例?

真诚,

罗马

回答

1

如果你不希望使用任何依赖注入框架(春,吉斯),做旧的方式方法:

安装​​

contextInitialized(ServletContextEvent sce)方法中创建你的单例并将其存储为属性ServletContext

当你的过滤器将被初始化,你应该能够得到从在FilterConfig界面中传递的ServletContext是单实例的过滤器的init method

1

为什么你需要在你的过滤器单身?您可以使用网络应用程序,会话和请求上下文来输入任何您希望的数据。

这就是说,没有看到你的代码,它可能是100%可能你正在使用类静态变量来保存实例?如果是的话,请注意,类是由类加载器作用域的,这是为什么在应用服务器中使用这种习惯用法是一个坏主意的原因之一(这几乎可以保证使用类加载器层次结构实现等等)JBoss和Jetty显然有不同的方法。

+0

我们使用专有的依赖注入 – 2011-06-10 23:17:48