不同应用程序的类加载器可以不同吗?

发布于 2024-09-14 19:30:20 字数 104 浏览 9 评论 0原文

在运行我的应用程序时,我有时感到困惑。我的应用程序由 EJB 和 servlet 组成。我需要知道这些应用程序类型的类加载器是否相同或不同。我使用 weblogic 作为应用程序容器。 请帮我。

I am confused at a point while running my application. My application consists of EJB and servlets. i need to know, whether the class loader for these application types is same or different. I am using weblogic as application container.
Please help me.

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

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

发布评论

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

评论(3

你的他你的她 2024-09-21 19:30:20

我的应用程序中有一个类依赖于单例和类加载器。问题是,当类加载器更改时,我的类的实例也会更改,并且我需要在整个生命周期中使用该类的同一实例.

是的,有一个系统类加载器,所有的 webapp 类加载器都会委托给它。

要将您的类放入该类加载器中,您需要确保它位于相关的类路径中。例如,对于 Tomcat,您可以将 JAR 文件放入 $CATALINA_HOME/lib 中(...如果我没记错的话)。

话虽如此,我并不相信在多个 Web 应用程序之间共享应用程序单例是一个好的设计。

There is one class in my application which is singleton and class loader dependent.And the problem is that the instance of my class changes when class loader changes, and i need to use the same instance of the class through out the life time.

Yes there is a system classloader that all of the webapp classloaders will delegate to.

To get your class into that classloader, you need to make sure it is in the relevant classpath. For instance with Tomcat, you would put the JAR file into $CATALINA_HOME/lib (... if I'm remembering that correctly).

That having been said, I'm not convinced that sharing application singletons between multiple webapps is good design.

我是有多爱你 2024-09-21 19:30:20

您会发现每个应用程序通常都会加载到它自己的类加载器实例中。类加载器将是 Web 容器提供的一个类,但每个运行的应用程序都会有一个它的实例。这允许应用程序彼此隔离,并且可以加载许多实例,无论它们是否使用静态/类变量或单例等。

You'll find that each application is typically loaded into it's own instance of a class loader. The class loader is going to be a class provided by the web container, but there will be one instance of it for each application running. This allows applications to be isolated from each other, and many instances to be loaded, regardless of whether they are using static/class variables, or singletons etc.

日久见人心 2024-09-21 19:30:20

WebLogic 使用分层类加载器。您的应用程序是如何打包的?是 EAR 还是 WAR + JAR 的?

此链接会很有帮助。

WebLogic uses layered class loader. How is your application packaged? Is it EAR or WAR + JAR's?

This link will be helpful.

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