簡體   English   中英

404與澤西和傑克遜的REST-Webservice示例出錯

[英]404 Error at REST-Webservice example with Jersey and Jackson

我正在嘗試使用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();

    }
}

我不知道如何檢查服務器端異常,對此的任何提示也很感激...... :-)

您在servlet映射中定義的

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

所以你的url應該被正確地稱為localhost:8080/rest/json/metallica/get

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM