Jersey bean验证在weblogic 12c中不起作用

时间:2017-08-18 18:57:02

标签: java jersey-2.0 bean-validation weblogic12c

我正在尝试将应用程序部署到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>

0 个答案:

没有答案