Web サービスに JAX-RS の jersey 実装を使用しています。私はこのJAX-RSに非常に慣れていません。
Employee オブジェクトを受け入れ、Employee オブジェクトの値に基づいて従業員 ID を返すサービスにメソッドを追加しようとしています (これには DB ヒットがあります)。
Restful の原則に従って、メソッドを @GET として作成し、以下に示すように URL パスを指定しました。
@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;
}
問題がどこにあるのか教えてください。私はこれの初心者で、概念を理解するのに苦労しています:(