【发布时间】:2021-08-14 23:08:51
【问题描述】:
Similar question exists 但没有一个答案有帮助。
在我的 Eclipse 项目上启动 Tomcat Server 9 出现错误
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer.class
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:539)
尽管我可以清楚地看到ServletContainer.class 下org.glassfish.jersey.servlet 下jersey-container-servlet-core.jar 下Web App Libraries。
所有需要的 jars 都已添加到 /src/main/webapp/WEB-INF/lib,它们似乎已正确导入。
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>JavaAPI</display-name>
<servlet>
<servlet-name>JAVA API</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer.class</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>test</param-value>
</init-param>
<load-on-startup>1</load-on-startup> <!-- Tried Removing this, no difference -->
</servlet>
<servlet-mapping>
<servlet-name>JAVA API</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
你好.java:
package test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@Path("/hello")
public class Hello {
@GET
@Produces(MediaType.TEXT_XML)
public String sayHello() {
String resource = "<? xml version='1.0' ?>" +
"<hello>Hi Varun! This is the sayHello call.</hello>";
return resource;
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public String sayHelloJSON() {
String resource = null;
return resource;
}
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHelloHTML() {
String resource = "<h1>Hi Varun! This is the sayHelloHTML call.</h1>";
return resource;
}
}
使用:
- 日食:2021-03
- 雄猫:9
- Java:1.8(在 BuildPath、ProjectFacets 下设置)
- JAX-RS 2.0 / Jersey 2.25.x
不涉及 Maven,不涉及 Gradle,只是 Web 项目,每个 jar 都是手工挑选和导入的。
【问题讨论】:
-
P.S 我已经束手无策了,非常接近于拉扯我的头发,每当我必须做任何与 JavaEE 相关的事情时,总会有一些细微的问题超出了我的脑力所能解决的范围。如果这是错误的表达方式,我很抱歉,但我有生以来第一次真正感到非常沮丧。无论我遵循哪个教程,无论它们多么简单,即使我一步一步地遵循它们,总会有一些奇怪的错误弹出并让我停滞不前。如果您的回答没有帮助,请告诉我 JavaEE 对您来说有多么令人沮丧,这会让我感觉更好。
-
你有推荐的吗?
标签: java servlets jersey java-ee-8