java - ClassNotFoundException : org. Glassfish . Jersey .servlet.ServletContainer

标签 java eclipse tomcat servlets glassfish

几个月前我下载了 Eclipse Luna 和 Tomcat 8.0.24,但我开始使用它们。我一直在创建一个没有 Maven 的网络应用程序。我手动下载了 Jersey 2.23、Jersey media moxy 2.23、java-son 1.0、jdbc mysql 5.x 和 sql2o 1.5.4。我开始学习 Angular,我成功地创建了一个页面,没有任何问题。

我记得我在项目的构建路径中手动添加了我的 jars,我也被迫将它们添加到部署程序集中。很好。

自 2 周以来,我没有关闭笔记本电脑,只是处于 sleep 模式。但是昨天我确实关机了。从那以后,我很难让它再次工作。我用postman chrome测试我的restful服务,关闭后收到404错误。

我意识到我开始在控制台中看到异常:

java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer

我拼命删除了tomcat和eclipse的文件夹,从头开始。但是,我遇到了同样的问题。我记得我玩的最后一件事是这些修改后的选项。

  1. 从服务器选项卡双击服务器
  2. 从使用工作区元数据更改为使用 Tomcat 安装
  3. 服务器中的属性
  4. 将位置从元数据切换到 localhost.server

由于这些问题,我解决了我的问题:

现在,在“重新安装”eclipse 和 tomcat 之后,当我在库选项卡中添加 jar 时,它们现在会自动添加到部署程序集中。 (吃惊)

根据前面附加的问题,我从我的工作区以及 tomcat/wtpwebapps/myproject/WEB-INF/lib 中添加了 WEB-INF/lib 中的所有 jar。如果我不这样做,我将无法让它发挥作用。 postman 终于给了我想要的输出。

尽管如此,我意识到当我通过 Windows 资源管理器手动复制 jar 时,Eclipse 中的控制台显示 tomcat 再次重新启动。但我仍然看到异常:java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer。至少我可以在浏览器或 postman 中毫无问题地运行我的项目。很奇怪。

我想在 Windows > 首选项 > Java > 构建路径 > 用户库中添加一个新的用户库,但我的列表是空的!!!所以……

最后,我的问题:

  • Eclipse 发生了什么事?
  • 为什么我看不到以前添加的用户库? enter image description here
  • 如果我在 web-inf 文件夹中添加了 jar 使其明显工作,为什么我仍然在控制台中看到 glassfish.jersey 的异常。
  • 为什么我需要在 web-inf 中添加 jars,如果当我看到 Tomcat 库中包含的所有 jars 时,我的所有 jars 都在那里,因为我忘了提到我在 Tomcat 的 lib 中添加了一个名为 External 的文件夹文件夹。

enter image description here

enter image description here

对于所有这些更改,我重新启动了 Eclipse

最佳答案

与其手动添加 jar,不如使用 maven 并让 maven 管理 jar 的依赖关系。 当类路径中没有 jar 时,会发生 ClassNotFoundException。也许您在服务器上部署的包没有正确捆绑。确保您的包中捆绑了 jar 或存在于类路径中。

另一个原因可能是您在两个 jar 中有重复的类文件,并且您的程序选择的类不合适。

关于java - ClassNotFoundException : org. Glassfish . Jersey .servlet.ServletContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381288/

相关文章:

java - Apache ·奥林戈·波约根

java - 是什么原因导致这个 "Incompatible operand types int and java.lang.String"

java - Tomcat7 未使用的 Web 部署程序集

tomcat - Artifactory 设置 HTTPS

java - 服务器在向 Spring Controller 发出几次请求后挂起

java - 查找服务器tomcat是否启动?

java - 为什么此代码段没有出现 Java 教程文档中所述的运行时错误?

java - 无法使用 Appium 安装 .ipa 文件

python - 从 Conda 环境运行时,PyDev/Eclipse 不加载 _mklinit

Android Studio 项目无法在设备中运行