Настройка валидатора дает ошибкиJAVA

Программисты JAVA общаются здесь
Anonymous
Настройка валидатора дает ошибки

Сообщение Anonymous »

Я пытаюсь настроить проверку бобов на моем сервере Джерси. Я хотел бы заверить, что каждый раз, когда я получаю электронное письмо в этом бобах, это не нулевое. Но с этой текущей настройкой каждый раз, когда Джерси пытается проверить, это дает NullPointerException: < /p>
java.lang.NullPointerException: Cannot invoke "jakarta.ws.rs.container.ResourceContext.getResource(java.lang.Class)" because "this.resourceContext" i s n u l l < b r / > a t o r g . g l a s s f i s h . j e r s e y . s e r v e r . v a l i d a t i o n . i n t e r n a l . I n j e c t i n g C o n s t r a i n t V a l i d a t o r F a c t o r y . g e t I n s t a n c e ( I n j e c t i n g C o n s t r a i n t V a l i d a t o r F actory.java:37)
at org.hibernate.validator.internal.engine.constraintvalidation.ClassBasedValidatorDescriptor.newInstance(ClassBasedValidatorDescriptor.java:84)
at org.hibernate.validator.internal.engine.constraintvalidation.AbstractConstraintValidatorManagerImpl.createAndInitializeValidator(AbstractConstraintValidatorManagerImpl.java:89)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManagerImpl.getInitializedValidator(ConstraintValidatorManagerImpl.java:117)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:152)
at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:58)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75)
at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130)
at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedAnnotatedObjectForCurrentGroup(ValidatorImpl.java:629)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:590)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateParametersInContext(ValidatorImpl.java:880)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:283)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:235)
at org.glassfish.jersey.server.validation.internal.DefaultConfiguredValidator.onValidate(DefaultConfiguredValidator.java:154)
at org.glassfish.jersey.server.validation.internal.ValidationInterceptorExecutor.proceed(ValidationInterceptorExecutor.java:95)
at org.glassfish.jersey.server.validation.internal.DefaultConfiguredValidator.validateResourceAndInputParams(DefaultConfiguredValidator.java:122)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:136)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:263)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:242)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:704)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:420)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
< /code>
Мои классы выглядят следующим образом: < /p>
helloaplication.java
@ApplicationPath("/api")
public class HelloApplication extends Application {

public HelloApplication() {
}

public Map getProperties() {
Map ret = new HashMap();
ret.put(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);
return ret;
}
}
< /code>
accountresource.java
@Path("/account")
public class AccountResource {

@POST
@Consumes(MediaType.APPLICATION_JSON)
public void postAccount(@Valid CreateAccountBean newAccount) {
System.out.println(newAccount);
}
}
< /code>
createaccountbean.java
import jakarta.validation.constraints.NotNull;

public record CreateAccountBean(@NotNull String email, String name, String password) {
}
< /code>
Зависимости от pom.xml < /p>


jakarta.servlet
jakarta.servlet-api
6.1.0
provided


org.glassfish.jersey.containers
jersey-container-servlet
4.0.0-M1


org.glassfish.jersey.media
jersey-media-json-jackson
4.0.0-M1


org.glassfish.jersey.inject
jersey-cdi2-se
4.0.0-M1


org.jboss.weld.se
weld-se-core
6.0.0.Beta4


org.glassfish.jersey.ext
jersey-bean-validation
4.0.0-M1


org.glassfish.jaxb
jaxb-runtime
4.0.5


org.junit.jupiter
junit-jupiter-api
${junit.version}
test


org.junit.jupiter
junit-jupiter-engine
${junit.version}
test


< /code>
ValidationConfigurationContextresolver.java
@Provider
public class ValidationConfigurationContextResolver implements ContextResolver {
@Context
public ResourceContext resourceContext;

@Override
public ValidationConfig getContext(Class type) {
ValidationConfig config = new ValidationConfig();
config.constraintValidatorFactory(
resourceContext.getResource(InjectingConstraintValidatorFactory.class));
return config;
}
}
< /code>
Я использую Apache Tomcat 10.1.40. Кто -то знает, как исправить эту ошибку? Я не мог найти что-либо в Интернете об этом, и я попытался следить за кодом из документации (https://eclipse-ee4j.github.io/jersey.g ... .injecting), но это также не сработало.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ors-jersey

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