找不到路径的子资源定位器/

时间:2014-02-07 17:07:36

标签: rest cxf

我正在编写一个简单的cxf配置的restful服务。但我一直得到这个错误“没有为路径/找到子资源定位器”的特定方法。虽然这个方法正确映射了url并且能够获取参数,但是,总是抛出此错误并返回404.

2 个答案:

答案 0 :(得分:12)

你可能忘记在休息电话中指定请求类型,检查你是否在呼叫中加入了正确的注释,如@Get,@ Post ..。

答案 1 :(得分:1)

您需要分享完整的代码才能获得更好的答案。

验证所有这些元素是否正确声明如下:

package com.test.rs.sample;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Provider;

import com.test.rs.dto.Student;

@Path("/student")
@Provider
public interface StudentService {

    @GET
    @Path("/get/{id}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Student getStudent(@PathParam("id")Long id);

    @GET
    @Path("/getAll/")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Student getAllStudents();

    @POST
    @Path("/add/")
    @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response addStudent(Student student);

    @PUT
    @Path("/update/")
    @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response updateStudent(Student student);

    @DELETE
    @Path("delete/{id}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Student deleteStudent(@PathParam("id")Long id);
}