【问题标题】:404 Error at REST-Webservice example with Jersey and JacksonJersey 和 Jackson 的 REST-Webservice 示例中的 404 错误
【发布时间】:2013-01-29 09:28:24
【问题描述】:

我正在尝试使用 JSON 构建一个简单的基于 java 的 REST Web 服务。我也在使用 Maven 进行依赖管理。

由于我是新手,所以我一直在遵循http://www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/ 上的一个不错的 5 步教程,但是我没有运行这个简单的示例。

Maven 运行良好,所有必要的依赖项都已下载并集成到项目中(库包含在部署的 .war 文件中)。唯一的问题是,当我想在部署项目后打开教程中给出的 URL (localhost:8080/RESTfulExample/rest/json/metallica/get) 时,我得到一个 404 错误而没有任何其他信息。

编辑:

这是我的 pom.xml

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.8</version>
    </dependency>

</dependencies>

<build>
    <finalName>RESTfulExample</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

正如我所说,构建运行良好,依赖项已加载并集成到项目中。

现在,这是我的 web.xml 的内容 Restful Web 应用程序

<servlet>
    <servlet-name>jersey-serlvet</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.mkyong.rest</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

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

接下来,我使用一个 JSON-Service 类和一个模型类 Track。我的 JSON 服务如下所示:

@Path("/json/metallica")
public class JSONService {

    @GET
    @Path("/get")
    @Produces(MediaType.APPLICATION_JSON)
    public Track getTrackInJSON() {

        Track track = new Track();
        track.setTitle("Enter Sandman");
        track.setSinger("Metallica");

        return track;

    }

    @POST
    @Path("/post")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createTrackInJSON(Track track) {

        String result = "Track saved : " + track;
        return Response.status(201).entity(result).build();

    }
}

我不知道如何检查服务器端异常,对此的任何提示也很感激...... :-)

【问题讨论】:

  • 任何服务器端异常??
  • 我认为您的请求中有错误,请用一些示例代码解释您的问题....
  • 您可以在您的问题中发布您的web.xmlpom.xml 吗?您的服务器应用程序(JBoss?)及其版本是什么?
  • 你的 JSONService 类很好地放在了 com.mkyong.rest 包中?

标签: java jakarta-ee jaxb jersey jax-rs


【解决方案1】:

您在 servlet 映射中定义

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

所以你的网址应该正确命名为localhost:8080/rest/json/metallica/get

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2015-06-01
    • 1970-01-01
    • 2016-11-21
    • 2018-10-23
    相关资源
    最近更新 更多