Я пишу остальную сервисную службу, которая имеет formParam и возвращает список. и я тестирую его в почтальоне. но я получаю эту ошибку.HTTP Status 500. Сервер обнаружил внутреннюю ошибку, которая помешала ей выполнить эту ошибку запроса. вот моя служба:успокаивающие веб-службы: HTTP-статус 500. Сервер обнаружил внутреннюю ошибку, которая помешала ему выполнить эту ошибку запроса.
@Path("/report")
public class weightingResource {
@POST
@Path("/loadWeightingByPlate")
//@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public List<Weighting> LoadWeightingInSpecTimeInSpecPlate(
@FormParam("plate") String plate,
@FormParam("startTime") String _startTime,
@FormParam("endTime") String _endTime,
@Context HttpServletRequest req) {
Long startTime = new Long(_startTime);
Long endTime = new Long(_endTime);
try {
List<Weighting> weightings = Weighting.LoadWeightingInSpecTimeInSpecPlate(startTime, endTime, plate);
System.out.println("no error");
return weightings;
} catch (Exception ex) {
System.out.println("Exception = " + ex);
return null;
}
}
}
тест я Weighting.LoadWeightingInSpecTimeInSpecPlate(startTime, endTime, plate)
и эта работа правильно. Может ли кто-нибудь мне помочь?
трассировки стека:
Blockquote21-августа-2015 17: 44: 31,133 ПРЕДУПРЕЖДЕНИЕ [HTTP-NiO-8084-Exec-197] org.glassfish.jersey.servlet.WebComponent.filterFormParameters запрос сервлету URI http://127.0.0.1:8084/fsc-access/rest/report/loadWeightingByPlate содержит параметры формы в теле запроса, но тело запроса потребляется сервлетом или фильтром сервлета, обращаясь к параметрам запроса. Только методы ресурсов, использующие @FormParam, будут работать как ожидалось. Методы ресурсов, потребляющие тело запроса другими способами, не будут работать должным образом. 21-Aug-2015 17: 44: 31.210 SEVERE [http-nio-8084-exec-197] org.glassfish.jersey.message.internal.WriterInterceptorExecutor $ TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter не найден для типа media = application/xml, type = class java.util.ArrayList, genericType = java.util.List.
теперь моя служба работает хорошо и я пишу клиент, чтобы использовать эту услугу, но я получаю сообщение об ошибке: HTTP 400 Bad Request: javax.ws.rs.BadRequestException
String webserviceURI = "http://localhost:8084/fsc-access";
ClientConfig clientConfig = new ClientConfig();
Client client = ClientBuilder.newClient(clientConfig);
URI serviceURI = UriBuilder.fromUri(webserviceURI).build();
WebTarget webTarget = client.target(serviceURI);
MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("plate", plate);
formData.add("startTime", start.toString());
formData.add("endTime", end.toString());
Weightings weightings = new Weightings();
weightings.getWeightings().addAll((Collection<? extends Weighting>) webTarget.path("rest").path("report").path("loadWeightingByPlate").
request().accept(MediaType.APPLICATION_XML).post(javax.ws.rs.client.Entity.form(formData), Weightings.class));
как я могу исправить Это ?
Если есть ответ 500, это обычно означает, что в ваших журналах будет трассировка стека. Пожалуйста, разместите здесь трассировку стека, чтобы мы могли лучше вам помочь. – Samuel
Да, есть кое-что: я поставил предупреждение в вопрос –