Java中的简单REST Jersey示例无法正常工作

时间:2013-12-03 23:44:09

标签: java eclipse jersey glassfish-4

我用Jersey编写了一个非常简单的例子。 我将最新的jar文件从jersey网站下载到WEB-INF中的lib文件夹中。 我的班级web.xml在下面。

当我提供网址localhost:8080/SimpleJersey/rest/test时,我得到404 error (not found)

然而,当我使用Maven时,它可以工作。 我使用Eclipse Kepler,Glassfish 4服务器和Java 7。

我在非Maven版本中做错了什么?

感谢。

类别:

package com.simplejersey;

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

@Path("/test")
public class MyResources
{

    @GET
    @Produces("text/plain")
    public String getIt()
    {
        return "Hello there!";
    }
}

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_3_1.xsd" id="WebApp_ID" version="3.1">


  <display-name>SimpleJersey</display-name>

  <servlet>
        <servlet-name>jersey-servlet</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
             <param-name>com.sun.jersey.config.property.packages</param-name>
             <param-value>com.simplejersey</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-servlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping> 

</web-app>

1 个答案:

答案 0 :(得分:4)

我在Michal Gajdos的这篇文章中找到了解决方案:Jersey REST Web Service, Tomcat, Eclipse and 404's

问题是(引自上述帖子):

  

Jersey 2.0无法识别名为init-param的{​​{1}}(web.xml)。尝试按照com.sun.jersey.config.property.packages(链接)中的说明将其更改为jersey.config.server.provider.packages

从显示较旧解决方案或版本的网站(如我所做)复制web.xml时要小心。泽西岛也在更新......