У меня возникла странная проблема, которую я абсолютно не понимаю, с Jersey 2.6.Jersey ModelValidationException - нет Источник впрыска
Я не могу объяснить почему, но один из параметров запроса джерси макияжа бросить ModelValidationException
@ApiOperation("Save")
@PUT
public Response save(
@HeaderParam("token") final String token,
@QueryParam("someValue") final SomeValueDTO someValue,
@QueryParam("anotherParam") final int anotherParam) throws TechnicalException {
return Response.ok().build();
}
в queryParam 'SomeValue' сделать джерси бросок:
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.|[[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response ch.rodano.studies.api.resources.PagesResource.save(java.lang.String,ch.rodano.studies.api.dto.JSONValueDTO,int) throws ch.rodano.studies.exceptions.RightException,ch.rodano.studies.configuration.exceptions.NoNodeException at index 1.; source='ResourceMethod{httpMethod=PUT, consumedTypes=[], producedTypes=[application/json], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class ch.rodano.studies.api.resources.PagesResource, handlerConstructors=[[email protected]]}, definitionMethod=public javax.ws.rs.core.Response ch.rodano.studies.api.resources.PagesResource.save(java.lang.String,ch.rodano.studies.api.dto.JSONValueDTO,int) throws ch.rodano.studies.exceptions.RightException,ch.rodano.studies.configuration.exceptions.NoNodeException, parameters=[Parameter [type=class java.lang.String, source=token, defaultValue=null], Parameter [type=class ch.rodano.studies.api.dto.JSONValueDTO, source=valuesASD, defaultValue=null], Parameter [type=int, source=visitPk, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}']
Если я использую String вместо SomeValueDTO, все в порядке. SomeValueDTO - довольно классический POJO с пустым конструктором и геттерами/сеттерами.
Если у кого-то есть иди!
Спасибо за быстрый ответ! Итак, если я понимаю, мне нужно разобрать jsonString в объект? SomeValueDTO содержит только простой тип, например String или int, нет способа сделать трикотаж автоматически проанализированным? – tanou
Это не имеет значения. Как вы ожидаете, что Джерси узнает, как преобразовать String в случайный объект? Он не знает, что входит JSON. Лично я никогда не отправлял JSON в строку запроса. Это всего лишь я. Эти четыре вещи, о которых я упоминал, являются частью спецификации о том, как вводить объекты для '@ XxxParam'. Все значения параметров вводятся как строки. Поэтому нам нужно сказать Джерси, как его конвертировать –
в порядке, наверное, я ожидал от него слишком многого. С уважением, Весна;) Еще раз спасибо! – tanou