Валидаторы Java Spring работают на локальном этапе, но не на этапе развертывания, 500 вместо 400JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Валидаторы Java Spring работают на локальном этапе, но не на этапе развертывания, 500 вместо 400

Сообщение Гость »


Необходимы ли какие-либо действия, чтобы валидаторы запросов Spring работали в развернутых средах?
Мои валидаторы корректно работают в локальной среде, возвращая 400 неверных запросов с кодами ошибок, но не работают в развернутых средах. Среды E2E возвращают простой ответ об ошибке 500.
При проверке журналов сервера E2E развертывания я вижу фактический текст кода ошибки, но все равно возвращает ответ 500.
Примечание. Если я отправлю правильный запрос в Local или E2E, он вернет правильный код успеха 200.

Код: Выделить всё

@ControllerAdvice
public class ValidationHandler extends ResponseEntityExceptionHandler{

@Override
protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {

Map errors = new HashMap();
ex.getBindingResult().getAllErrors().forEach((error) ->{

String fieldName = ((FieldError) error).getField();
String message = error.getDefaultMessage();
errors.put(fieldName, message);
});
return new ResponseEntity(errors, HttpStatus.BAD_REQUEST);
}
}

@Data
public class ProductRequest {
@NotNull
@NotBlank
@Valid
@JsonProperty("productId")
private String productId;

@NotNull
@NotBlank
@Valid @JsonProperty("productRecordTime")
private String productRecordTime = LocalDateTime.now().toString();;
}
Пример журнала: (удаление конфиденциальных данных компании)

[c.i.p.C.s.r.c.e.GenericExceptionHandler]-[50]-обработка неожиданного
исключения
org.springframework.web .bind.MethodArgumentNotValidException:
Не удалось выполнить проверку аргумента [1] в public
org.springframework.http.ResponseEntity
[Ошибка поля в объекте «productRequest» в поле «productId[0]»:
отклоненное значение
[ProductRequestorg.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:141)< br />at
org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
at
org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues (InvocableHandlerMethod.java:179)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)
at
org.springframework.web .servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java: 895)
в
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
в
org.springframework.web. servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
в javax.servlet.http.HttpServlet.service(HttpServlet.java:584) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at
org.springframework.web.filter. OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at
org.apache. catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at
com.identity.authz.spring.sdk.context.LiveDiffFilter.doFilter(LiveDiffFilter.java:30)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)< br />at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor .invoke(FilterSecurityInterceptor.java:115)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at
org .springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter( FilterChainProxy.java:346)
at
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at
org.springframework.security. web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346 )
at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain .doFilter(FilterChainProxy.java:346)
at
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at
org.springframework .security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)
at< br />org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)


Источник: https://stackoverflow.com/questions/781 ... instead-of
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»