概括
在运行独立的 JUnit 测试时添加到构建路径时可以访问来自 3rd 方jar文件的类,但在通过动态 Web 项目中的普通旧 java 对象访问时会出现“ ClassNotFoundException ”。
- 使用的IDE:Eclipse
- 网络服务器:Apache 7
细节
我的项目需要很多 3rd 方 jar,即 sqlite、eclipse jdt 和 jsoup。我已经将此项目创建为一个独立项目,并且 jar 中的所有类都可以正常访问。
但现在我已将整个“src”文件夹复制到“动态网络项目”中。我创建了一个文件夹“jars”,其中包含所有这些 3rd 方 jar,并确保按照以下步骤将所有这些都添加到构建路径中:
项目属性 --> Java 构建路径 --> 库 --> 添加 jars --> 从 jars 文件夹中选择所有 jar 文件。
当我在 Web 项目中运行独立的 JUnit 测试时,可以很好地访问这些 jar。请注意,此 junit 测试无论如何都不需要服务器。
但是,当我尝试“在服务器上运行..”时,对于所有 3rd 方类,我都会继续获得像这样的 ClassNotFoundException :
java.lang.ClassNotFoundException: org.sqlite.JDBC
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1672)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517)
我确信这与我对如何在 Web 上部署应用程序缺乏了解有关。