在使用jersey API并在Tomcat上部署时获取java.lang.ClassNotFoundException:javax.ws.rs.ApplicationPath

时间:2015-09-25 11:37:48

标签: tomcat jersey openshift

我使用Jersey for Rest Services。我在WEB-INF / lib文件夹中添加了jersey-core,jersey-server jar,但tomcat没有部署WAR并指定以下异常:

java.lang.ClassNotFoundException:javax.ws.rs.ApplicationPath

请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

泽西岛使用各种容器的概念来适应周围环境。通过这种方式,它可以在纯粹的http容器中运行,例如灰熊,或者像在你的情况下一样在servlet容器中运行。

为了使Jersey工作,您还需要添加jersey-servlet依赖项:

<dependency>
  <groupId>org.glassfish.jersey.containers</groupId>
  <artifactId>jersey-container-servlet</artifactId>
</dependency>

但是ClassNotFoundException本身是由类路径上缺少JAX-RS API jar引起的:

<dependency>
  <groupId>javax.ws.rs</groupId>
  <artifactId>javax.ws.rs-api</artifactId>
</dependency>

您似乎正在手动管理依赖项,这可能会变得相当具有挑战性。如果您不想(或不能)考虑使用某种工具为您(gradle,maven)执行此操作,我建议至少从相关的jersey模块中获取pom.xml文件来探索相关性该模块确保不要忘记一些先决条件。

所有源代码都可以在github上找到,例如:请参阅containers pom

希望这有帮助, 亚当