RESTful - HTTP状态405 - 不允许的方法

时间:2017-02-22 21:05:37

标签: rest

我之前发布了类似的问题,因为早期帖子中给出的解决方案似乎并不适用。

我正在尝试通过REST客户端将数据(json)发布到URL我正在获取" HTTP状态405 - 方法不允许"在浏览器上,日志上没有其他错误。

我在网络浏览器上输入以下网址。

http://localhost:8080/RESTfulExample/rest/json/metallica/post

使用get的类似调用正在工作,我能够以JSON格式获取数据。

下面是JSONService类和JSONPOST类。

JSONService.java

package com.rest;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.Track;

@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) {
        System.out.println("Hello in Post...");
        String result = "Track saved : " + track;
        return Response.status(201).entity(result).build();     
    }   
}

JerseyClientPost.java

package com.client;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class JerseyClientPost {

    public static void main(String[] args) {

        try {

            Client client = Client.create();

            WebResource webResource = client.resource("http://localhost:8080/RESTfulExample/rest/json/metallica/post");

            String input = "{\"singer\":\"Metallica\",\"title\":\"Fade To Black\"}";

            ClientResponse response = webResource.type("application/json")
                    .post(ClientResponse.class, input);

            if (response.getStatus() != 201) {
                throw new RuntimeException("Failed : HTTP error code : "
                        + response.getStatus());
            }

            System.out.println("Output from Server .... \n");
            String output = response.getEntity(String.class);
            System.out.println(output);

        } catch (Exception e) {

            e.printStackTrace();

        }
    }
}

任何人都可以帮我解决如何解决HTTP 405的POST呼叫问题吗?

如果有任何其他详细信息,请与我们联系。

先谢谢。 Jay Shukla

0 个答案:

没有答案
相关问题