ja otrzymuję następujący błąd:Jersey REST WS Błąd: „brakujących zależnościach dla metody ... w parametrze w indeksie X”
Apr 09, 2013 12:24:26 PM com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 0
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 1
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 2
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 3
SEVERE: Method, public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String), annotated with POST of resource, class com.package.ImportService, is not recognized as valid resource method.
Mam poprzednio pracujący metody POST, która pobiera dane wieloczęściowe (a Prześlij plik), a następnie kilka innych pól danych String od złożonej postaci, oto kod:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail,
@FormDataParam("param1") String param1,
@FormDataParam("param2") String param2,
@FormDataParam("param3") String param3) {
....
....
return Response.status(200).entity(getEntity()).build();
}
błąd wydaje się być związane ze sposobem parametry forma są interpretowane przez Jersey. Oto kod, który nie:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/local")
public Response specifyLocalFile(
@FormDataParam("file") String fullFilePath,
@FormDataParam("param1") String param1,
@FormDataParam("param2") String param2,
@FormDataParam("param3") String param3) {
....
....
return Response.status(200).entity(getEntity()).build();
}
Usunięcie adnotacji typu "swagger" pomogło mi. Dzięki. –