【问题标题】:Getting error page for simple RESTful web service application获取简单 RESTful Web 服务应用程序的错误页面
【发布时间】:2015-09-07 02:47:07
【问题描述】:

这可能是一个非常简单的问题,可能是重复的(虽然我到目前为止还没有找到),但不知何故我被卡住了,需要尽快解决它。

基本上,我正在尝试使用 JAX-RS API 制作一个简单的 RESTful Web 服务。不知何故,我不能这样做。这是我第一次接触 Web 服务,我很确定我犯了一个愚蠢的错误,尽管经过大量谷歌搜索后我未能解决它。

所以,这是我的项目结构 -

MessageResource.java

package com.rest.jersey.messenger.resource;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/messages")
public class MessageResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getMessage() {
        return "Hello World";
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
         id="WebApp_ID" 
         version="3.0">
  <display-name>messenger</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Jersey_REST_Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>com.rest.jersey.messenger.resource</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey_REST_Service</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
  </servlet-mapping>
</web-app>

我点击的网址是:http://localhost:8090/messenger/webapi/messages

结果:我收到错误页面 -

HTTP Status 404 - /messenger/webapi/messages

type Status report
message /messenger/webapi/messages
description The requested resource is not available.

注意:我没有使用 maven。我想手动设置项目。而且,我使用的是 8090 端口而不是 8080。

[编辑]

我在启动 Tomcat 服务器时收到以下警告:

WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Messenger' did not find a matching property.

我尝试了以下解决方案。还是一样的错误。

Double click on your tomcat server. 
It will open the server configuration. 
Under server options check ‘Publish module contents to separate XML files’ checkbox

【问题讨论】:

标签: java web-services rest jax-rs


【解决方案1】:

问题是你的Context root。 试试这个网址

http://localhost:8090/Messenger/webapi/messages

基本上,您的上下文根是您的 Web 应用程序的名称。在这种情况下,它是 Messenger 而不是 messenger。所以解决方案:

  1. 您只需更改项目名称即可。
  2. 要通过web.xml 更改它,您必须遵循供应商特定的步骤。 Check more here
  3. 如果您想通过eclipse 更改它,请查看此图片。 Check more here

【讨论】:

  • 还是同样的错误。我正在添加更多信息。希望它会提供信息。
  • 您收到的警告与此无关。我得到了完全相同的警告,但它仍然有效。在这里查看stackoverflow.com/questions/3566146/…
  • 你到底尝试了什么?
  • 将项目名称更改为messenger 并尝试http://localhost:8090/messenger/webapi/messages
  • 你是重构还是重命名?您是否刷新/重建/重新运行?尝试明确清理项目
猜你喜欢
  • 2010-11-29
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
相关资源
最近更新 更多