Я сделал быстрый тест и подтвердил поведение, которое вы заметили.Похоже, что в первый раз из среды проверки JAX-RS вызываются вызовы проверки, а затем вызовы времени выполнения CDI также проверяются (поскольку ресурсы JAX-RS также являются компонентами CDI).Я смотрю, можем ли мы заставить JAX-RS избегать вызова, если OpenLiberty может обнаружить, что включена функция CDI.
Когда я включаю эти функции, JAX-RS вызывает только isValid()
один раз:
<featureManager>
<feature>jaxrs-2.1</feature>
<feature>jsonp-1.1</feature>
<feature>beanValidation-2.0</feature>
</featureManager>
на com.ibm.ws.jaxrs20.server.LibertyJaxRsInvoker.callValidationMethod(LibertyJaxRsInvoker.java:371)
Но когда мы включаем функцию CDI, среда выполнения CDI вызывает также isValid()
:
<featureManager>
<feature>jaxrs-2.1</feature>
<feature>jsonp-1.1</feature>
<feature>beanValidation-2.0</feature>
<feature>cdi-2.0</feature>
</featureManager>
в org.hibernate.validator.cdi.internal.interceptor.*
Подводя итог, это похоже на ошибку в OpenLiberty.Необходимо выполнить обновление, чтобы isValid()
вызывался только один раз, когда включены функции JAX-RS и CDI.