在java web应用程序中加载xml文件

发布于 2024-09-08 05:54:07 字数 339 浏览 5 评论 0原文

我需要在我的网站中加载 log4j.xml 配置文件来初始化日志记录。 log4j.xml 位于包中 com.test.config。

当在 j2se java 应用程序代码中

InputStream input = ClassLoader.getSystemClassLoader().getResourceAsStream("com/test/config/log4j.xml");

返回输入流时,但是当我在 servlet 中执行它时,它返回 null。 servlet 是部署在 glassfish 2.1 上的 java web 应用程序,

有什么区别?

I need to load log4j.xml config file in my web to initialize logging. log4j.xml is in package
com.test.config.

when in j2se java app code

InputStream input = ClassLoader.getSystemClassLoader().getResourceAsStream("com/test/config/log4j.xml");

resturns input stream but when I execute this in servlet it returns null.
servlet is java web app deployed on glassfish 2.1

what's the difference?

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

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

发布评论

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

评论(2

空城缀染半城烟沙 2024-09-15 05:54:07

如果 log4j.xml 文件位于 jar 文件中,请确保已将该 jar 文件添加到 Glassfish 中的 servlet 类路径中。

否则,如果它位于目录中,例如 resources/com/test/config,则必须将 resources 目录添加到服务器类路径中。

If the log4j.xml file is in a jar file, ensure that you've added the jar file to the servlet classpath in Glassfish.

Otherwise, if its in a directory, say resources/com/test/config you have to add the resources directory to your server classpath.

百善笑为先 2024-09-15 05:54:07

您可以尝试使用当前线程的上下文类加载器 Thread.currentThread().getContextClassLoader() 来代替,我认为这曾经为我解决了类似的问题。

You could try using the current thread's context class loader Thread.currentThread().getContextClassLoader() instead, I think this solved a similar issue for me once.

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