【问题标题】:Simple REST Jersey example in Java not workingJava中的简单REST Jersey示例不起作用
【发布时间】:2013-12-20 06:30:07
【问题描述】:

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

当我提供 URL 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>

【问题讨论】:

  • 我应该补充一点,我在 Eclipse 中没有收到错误消息。只是浏览器出现404错误。也许这与依赖关系有关,因为它在我使用 Maven 时有效。
  • 我通过阅读这篇文章解决了它:stackoverflow.com/questions/17709039/… 问题是(引用上述帖子):“Jersey 2.0 无法识别名称为 com.sun.jersey.config.property 的 init-param。包(web.xml)。尝试将其更改为 jersey.config.server.provider.packages..."
  • 阅读这篇文章stackoverflow.com/questions/20784531/…,也许对你有用

标签: java eclipse jersey glassfish-4


【解决方案1】:

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

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

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

当您从显示旧解决方案或版本的网站复制 web.xml 时要小心(就像我一样)。泽西岛也在更新中……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 2015-11-23
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多