我正在为Web服务使用JAX-RS的球衣实现。我对这个JAX-RS非常陌生。JAX-RS异常:使用资源的GET注释,类不被识别为有效的资源方法
我想在接受Employee对象的服务中添加一个方法,并根据Employee对象的值返回雇员Id(这里有一个DB命中)。
继宁静的原则,我做的方法,@GET,如图所示下面提供的网址路径:
@Path("/EmployeeDetails")
public class EmployeeService {
@GET
@Path("/emp/{param}")
public Response getEmpDetails(@PathParam("param") Employee empDetails) {
//Get the employee details, get the db values and return the Employee Id.
return Response.status(200).entity("returnEmployeeId").build();
}
}
出于测试目的,我写了这个客户端:
public class ServiceClient {
public static void main(String[] args) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
Employee emp = new Employee();
emp.name = "Junk Name";
emp.age = "20";
System.out.println(service.path("rest").path("emp/" + emp).accept(MediaType.TEXT_PLAIN).get(String.class));
}
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8045/AppName").build();
}
}
当我运行它时,出现错误:Method, public javax.ws.rs.core.Response com.rest.EmployeeService.getEmpDetails(com.model.Employee), annotated with GET of resource, class com.rest.EmployeeService, is not recognized as valid resource method.
编辑:
型号:
package com.model;
public class Employee {
public String name;
public String age;
}
请让我知道什么地方的问题,我在这是一个初学者,并努力理解这些概念:(
你确定你不想传递'employeeId'并返回一个'Employee'对象。 – beny23 2013-02-22 12:41:03
是的,我知道它不寻常的通过其他细节并获得身份证,但多数民众赞成的要求。如果有多个员工,则需要根据他们的加入日期提取最老的员工,因此我相信我需要传递员工对象并获取员工ID。您可以让我知道如何使这项工作:( – WhoAmI 2013-02-22 12:45:44
添加您的EmployeeService类的定义到问题,包括任何类级别的注释 – Perception 2013-02-22 12:48:03