获取简单RESTful Web服务应用程序的错误页面

时间:2015-09-06 17:20:38

标签: java web-services rest jax-rs

这可能是一个非常简单的问题,可能是重复的(尽管到目前为止我还没有找到),但不知怎的,我已经陷入困境,需要尽快解决它。

基本上,我正在尝试使用JAX-RS API创建一个简单的RESTful Web服务。不知何故,我无法这样做。这是我第一次遇到网络服务,我很确定我做了一个愚蠢的错误,虽然经过大量的谷歌搜索我没有解决它。

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

enter image description here

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

1 个答案:

答案 0 :(得分:2)

问题在于你Context root。 请尝试使用此网址

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

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

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