我不能在WEB-INF / lib中使用子文件夹吗?

Ada*_*dam 2 gwt

我正在GWT(无maven)项目中进行一些清理。它在WEB-INF / lib中添加了很多jar。我知道这些jar的用途(例如,用于REST服务-幸运的是有文档记录),因此我想将它们放在适当的子文件夹中,以使外观更好。

在将它们重新添加到构建路径后(因为它们现在位于子文件夹中),我尝试运行SuperDevMode并收到多个警告:

在网络应用中找不到服务器类“ X”,但在系统类路径中找到了服务器类“ X”

和一些错误,例如:

找不到HK2 ServiceLocatorGenerator的默认实现

当我将这些罐子放回WEB-INF / lib(不包含子文件夹)并重新添加以构建路径时,一切运行正常。

我的问题是:不能/不应该在WEB-INF / lib中使用子文件夹吗?如果是这样,为什么?

Lui*_*ani 5

服务器类加载器被编程为仅查看WEB-INF / lib,而不查看其他文件夹或子文件夹。

我强烈建议您进入Maven世界,它具有陡峭的学习曲线,但可以确保为您的项目打下坚实的基础。Maven的另一个重要优点是它可以自动获取您库的最新安全补丁(Equifax,有人吗?)。

从Apache Tomcat 7文档中提取

WebappX —为部署在单个Tomcat实例中的每个Web应用程序创建一个类加载器。Web应用程序的/ WEB-INF / classes目录中的所有解压缩类和资源,以及Web应用程序的/ WEB-INF / lib目录下的JAR文件中的类和资源,对于此Web应用程序都是可见的,但不是给其他人。