【问题标题】:Tomcat cannot find class for my REST web service classTomcat 找不到我的 REST Web 服务类的类
【发布时间】:2019-06-06 01:00:19
【问题描述】:

我使用 Eclipse WTP 创建了一个简单的 Web 服务。 Tomcat 版本是 8.5,Java 是 1.8。

我下载了 Jersey 2.27。从 Eclipse 启动服务器时,我收到以下 错误

java.lang.RuntimeException:类名的类文件, my.simple.webservice.SimpleWebService 已识别,但类 找不到。

非常感谢任何有助于解决此问题的帮助。

在 StackOverflow 和其他网站上搜索没有返回任何有用的信息。

我的网络服务如下所示:

 package my.simple.webservice;

    ...imports ...

    @Path("/")

    public class SimpleWebService {

    @POST

    @Path("/service")

    @Consumes(MediaType.APPLICATION_JSON)

    public Response consumeService(InputStream incomingData) {
        /* 
                 *do stuff here with the JSON
                 */
        // return HTTP response 200 in case of success
        return Response.status(200).entity(myStringBuilder.toString()).build();
    }

    @GET
    @Path("/verify")
    @Produces(MediaType.TEXT_PLAIN)
    public Response verifyRESTService(InputStream incomingData) {
        String result = "My Simple web service Successfully started..";

        // return HTTP response 200 in case of success
        return Response.status(200).entity(result).build();
    }

}

我的 web.xml 看起来像这样:

    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>my.simple.webservice</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

【问题讨论】:

  • 您不应接受不能回答您问题的答案。如果您自己解决了问题,您可以回答自己的问题,并在几天后接受。接受答案的目的是让其他人搜索相同的问题。他们寻找公认的答案以找到解决类似问题的方法。

标签: eclipse jersey tomcat8


【解决方案1】:
  1. 删除项目的构建文件夹
  2. 然后 clean install 由 maven 构建
  3. 运行您的应用程序

如果它仍然不起作用,请告诉我,我将在我的系统上复制问题。

【讨论】:

  • 您好,感谢您的重播。我重新启动了 Eclipse,现在服务器启动正常,但是当我尝试访问我的服务 localhost:8080/SimpleWebService/api/verify 时,我收到了来自 Tomcat 的 404 not found 回复
  • &lt;servlet-mapping&gt; &lt;servlet-name&gt;Jersey&lt;/servlet-name&gt; &lt;url-pattern&gt;/rest/*&lt;/url-pattern&gt; &lt;/servlet-mapping&gt;下方的web.xml中设置默认的rest api路径
  • 当你调用你的 api like -> something.com/project/rest 然后你的资源文件的默认方法将被触发。所以没有 404 发生。
  • 感谢您的快速回复,但正如您在我的 web.xml 中看到的那样,我已经进行了设置。我还确认上下文根是正确的,所以 SimpleWebService/api/verify 是正确的路径。
  • 404 Not Found Error是一个HTTP响应状态码,表示找不到请求的资源。有一些映射问题,其余的似乎都还好,等我再挖掘一下。
猜你喜欢
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 2017-10-31
  • 2011-09-13
  • 1970-01-01
  • 2016-03-17
相关资源
最近更新 更多