我正在爲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