首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/WEB-INF/classes vs /WEB-INF/lib

/WEB-INF/classes vs /WEB-INF/lib
EN

Stack Overflow用户
提问于 2011-01-20 02:44:10
回答 3查看 13.7K关注 0票数 21

我想将我的Java EE6 web类(beans、过滤器、servlets)打包到jar中,并将其与其他实用程序jar放在/WEB-INF/lib/目录中,并完全放弃/WEB-INF/classes/目录。

在类加载、访问应用程序上下文等方面,两者之间有什么本质上的区别吗?

谢谢。

注:每当我在谷歌上搜索任何java规范时,我总是被重定向到Oracle文档索引,它距离原始url只有十几次点击。有人知道那里发生了什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-20 02:52:00

我会去找/WEB-INF/classes。它允许您在调试模式下运行应用程序,并在更改时热插拔类。如果将所有内容打包为jar,则每次更改类时都必须重新打包和重新部署应用程序。

票数 23
EN

Stack Overflow用户

发布于 2011-01-20 02:54:59

简而言之:假设您有org.example.Test.class类,如果您将其放入jar和WEB-INF/lib/目录中,并将同一类复制到WEB-INF/classes/中,那么该应用程序的类加载器将使用最后一个类(来自WEB-INF/classes/)。

有时你可以利用它作为优势-我有一个库,它有一个bug……我寻找那个类的源代码( bug在哪里;我错过了我知道bug在那个类中的部分,那是另一回事了),我用固定的代码将那个类添加到项目中,它被编译成WEB-INF/classes/,而库仍然存在于WEB-INF/lib/中。固定的类将一直使用,直到库被修复。

票数 18
EN

Stack Overflow用户

发布于 2017-09-26 00:23:00

在Tomcat Servlet容器的定义中:在WEB-INF\lib之前搜索WEB-INF\classes。您可以选择将您的类加载委托给您的自定义类加载器-即使这样也可以保持上面的顺序。

如果你选择使用不同的供应商,例如JBOss,Glassfish,Jetty,它可能会有不同的顺序,但我不确定这些。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4739302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档