JBoss中如何获取单例实例?

发布于 2024-11-15 02:04:39 字数 147 浏览 3 评论 0原文

我有一个必须在过滤器中实例化的单例,由于某种原因,我在第一次尝试时无法获得它的实例。 (部署在 JBoss EAP 5.1 中的应用程序)无需修改的相同解决方案也可以很好地与 Jetty 应用程序服务器配合使用。非常感谢您的提前答复。

此致,

罗马

I have a singleton that I have to instantiate in my filter and for some reason I cannot get it's instance on couple first attempts. (The application deployed in JBoss EAP 5.1) This same solution with no modification works just fine with Jetty Application server. Greatly appreciate for your answer in advance.

Sincerely,

Roman

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

败给现实 2024-11-22 02:04:39

如果您不想使用任何依赖注入框架(Spring、Guice),请按照旧方式进行:

安装 ServletContextListener

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

当您的过滤器初始化时,您应该能够从过滤器的 FilterConfig 接口内传递的 ServletContext 获取该单例实例。 初始化方法

If you don't want to use any dependency injection framework ( Spring, Guice ), do it the old fashion way:

Install ServletContextListener

In contextInitialized(ServletContextEvent sce) method create your singleton and store it as an attribute on ServletContext

When your filter will be initialized you should be able to get that singleton instance from the ServletContext that is passed inside the FilterConfig interface in your filter's init method

半衬遮猫 2024-11-22 02:04:39

为什么你的过滤器中需要一个单例?您拥有网络应用程序、会话和请求上下文来放入您想要的任何数据。

也就是说,在没有看过你的代码的情况下,你有可能使用类静态变量来保存实例吗?如果是,请注意类的范围是由类加载器确定的,这就是为什么在应用程序服务器中使用此类习惯用法是一个坏主意的众多原因之一(这几乎可以保证使用类加载器层次结构来实现)等)JBoss 和 Jetty 显然有不同的方法。

Why do you need a singleton in your filter? You have web-app, session, and request contexts to put in any data you wish.

That said, without having seen your code it is ~100% likely you are using a class static variable to hold an instance? If yes, please note that classes are scoped by class-loaders, and this is one among many reasons why it is a bad idea to resort to such idioms in an application server (which pretty much is guaranteed to be implemented using class-loader hierarchies, etc.) JBoss and Jetty clearly have different approaches.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文