我正在尝试将应用程序部署到weblogic,我们使用jersey作为jsr 303 bean验证提供程序
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>${jersey.version}</version>
</dependency>
我还在weblogic.xml中禁用了weblogic中的默认bean验证实现 - &gt;
<prefer-application-packages>
<package-name>javax.validation.*</package-name>
<package-name>javax.validation.bootstrap.*</package-name>
<package-name>javax.validation.constraints.*</package-name>
<package-name>javax.validation.groups.*</package-name>
<package-name>javax.validation.metadata.*</package-name>
<package-name>javax.validation.spi.*</package-name>
</prefer-application-packages>
现在我收到了这个错误,它根本没有看到泽西豆验证:
weblogic.application.ModuleException: javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
Truncated. see log file for complete stacktrace
Caused By: javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:271)
at org.glassfish.jersey.server.validation.internal.ValidationBinder$DefaultConfigurationProvider.provide(ValidationBinder.java:122)
at org.glassfish.jersey.server.validation.internal.ValidationBinder$DefaultConfigurationProvider.provide(ValidationBinder.java:110)
at org.jvnet.hk2.internal.FactoryCreator.create(FactoryCreator.java:153)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487)
Truncated. see log file for complete stacktrace
BTW应用程序在tomcat中正常运行。任何想法?
修改 我找到了一个解决方案,我不仅要添加所有依赖项javax.validation,jersey使用hibernate验证器进行bean验证,而hibernate验证器使用jboss进行日志记录,所以当我添加以下内容时它与我合作
<package-name>javax.validation.*</package-name>
<package-name>org.hibernate.validator.*</package-name>
<package-name>org.jboss.logging.*</package-name>