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

时间:2018-02-13 14:15:42

标签: gwt

我正在GWT( no maven )项目中进行一些清理工作。它在WEB-INF / lib中添加了很多jar。我知道这些罐子的用途(例如用于REST服务 - 幸运的是它已被记录)所以我想把它们放在适当的子文件夹中以获得更好的外观。

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

  

服务器类' X'无法在Web应用程序中找到,但在系统类路径

中找到

和一些错误如:

  

找不到HK2 ServiceLocatorGenerator的默认实现

当我将这些jar放回WEB-INF / lib(没有子文件夹)并重新添加到构建路径时,一切运行都很好。

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

1 个答案:

答案 0 :(得分:4)

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

我强烈建议进入maven世界,它有一个陡峭的学习曲线,但它将确保你的项目成长的坚实基础。 Maven的另一大优点是它可以自动获取你的库的最新安全补丁(Equifax,任何人?)。

Extract from the Apache Tomcat 7 Docs

  

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