简单的Hello world RESTful Web服务显示404错误

时间:2014-10-18 14:14:39

标签: java web-services rest

我们正在尝试构建一个RESTful Web服务来打印Hello World,但是在运行它时会发现找不到文件错误。

java文件:

package com.gslabs.contact;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Path("/Contact")
public class ContactREST {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String gethtmlcontact_info()
    {
            return "<html>"+"<title>"+"Contact-info"+"</title>"+"<body><h1>"+"Contact-Info"+"</body></h1></html>";

    }
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getXMLcontactinfo()
    {
        return "Contact info";
    }

}

的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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>RestfulWS</display-name>
  <servlet>
    <servlet-name>Rest Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.gslabs.contact</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Contacts Info</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app>

3 个答案:

答案 0 :(得分:0)

您必须发出http请求,例如:

http://domain-name2.domain-name1:port/jaxrs/rest/contact 

其中:

  • domain-name2.domain-name1 - 已部署服务(指定您自己的服务)的服务器
  • jaxrs - 上下文根(输入您自己的)
  • rest - REST资源的路径(指定您自己的)

并指定不带斜杠的资源标识符:

@Path("contact")

答案 1 :(得分:0)

尝试添加项目名称而不是jaxrs。

答案 2 :(得分:0)

  1. 您在联系路径中有“/”。
  2. 即使你使用get方法说blablahhost:port/blahblah/rest/contact,你的网络服务器也会对它需要调用哪种方法感到困惑。那么为什么不定义两个获取请求的路径?