Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-4114

"Bean Validation provider can not be found" when using bean validation in CXF

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • jboss-fuse-6.2.1
    • jboss-fuse-6.2.1
    • CXF
    • None
    • % %
      1. mvn clean install
      2. features:install hibernate-validator
      3. osgi:install -s mvn:org.jboss.quickstarts.fuse/cxf-soap/6.2.1.redhat-032
      4. invoke the service via SOAP-UI

      I tried to use bean validation (following http://jenkinscat.gsslab.pnq.redhat.com:8080/job/doc-Fuse-6-2/lastStableBuild/artifact/publican/Apache_CXF_Development_Guide/tmp/en-US/html-single/index.html#Validation) in CXF soap quickstart. When I invoke the service, I get:

      2015-09-30 14:59:57,406 | ERROR | qtp1193166450-74 | BeanValidationProvider           | 187 - org.apache.cxf.cxf-core - 3.0.4.redhat-621032 | Bean Validation provider can not be found, no validation will be performed
      2015-09-30 14:59:57,407 | WARN  | qtp1193166450-74 | PhaseInterceptorChain            | 187 - org.apache.cxf.cxf-core - 3.0.4.redhat-621032 | Interceptor for {http://soap.quickstarts.fabric8.io/}HelloWorldImplService#{http://soap.quickstarts.fabric8.io/}sayHi has thrown exception, unwinding now
      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)[167:javax.validation.api:1.1.0.Final]
      	at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110)[167:javax.validation.api:1.1.0.Final]
      	at org.apache.cxf.validation.BeanValidationProvider.<init>(BeanValidationProvider.java:45)[187:org.apache.cxf.cxf-core:3.0.4.redhat-621032]
      	at org.apache.cxf.validation.AbstractValidationInterceptor.getProvider(AbstractValidationInterceptor.java:122)[187:org.apache.cxf.cxf-core:3.0.4.redhat-621032]
      	at org.apache.cxf.validation.BeanValidationInInterceptor.handleValidation(BeanValidationInInterceptor.java:58)[187:org.apache.cxf.cxf-core:3.0.4.redhat-621032]
      	at org.apache.cxf.validation.AbstractValidationInterceptor.handleMessage(AbstractValidationInterceptor.java:73)[187:org.apache.cxf.cxf-core:3.0.4.redhat-621032]
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)[187:org.apache.cxf.cxf-core:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)[187:org.apache.cxf.cxf-core:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)[58:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268)[192:org.apache.cxf.cxf-rt-transports-http:3.0.4.redhat-621032]
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)[103:org.ops4j.pax.web.pax-web-jetty:3.2.4]
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)[103:org.ops4j.pax.web.pax-web-jetty:3.2.4]
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)[103:org.ops4j.pax.web.pax-web-jetty:3.2.4]
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.Server.handle(Server.java:370)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[96:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
      	at java.lang.Thread.run(Thread.java:745)[:1.8.0_51]
      

      This might be a similar issue as CAMEL-7168 in Camel bean-validator component. I tried to modify the quickstart accordingly, but I got another error:

      Error executing command: Error installing bundles:
      	Unable to start bundle file:/home/trohovsk/fuse/jboss-fuse-6.2.1.redhat-032/quickstarts/cxf/soap/target/shared.jar: Unresolved constraint in bundle org.jboss.quickstarts.fuse.cxf-soap [267]: Unable to resolve 267.0: missing requirement [267.0] osgi.wiring.package; (&(osgi.wiring.package=org.hibernate.validator)(version>=5.0.0)(!(version>=6.0.0)))
      

      The changes are commented out in pom.xml, blueprint.xml and HibernateValidationProviderResolver.java. If this is not a bug, what's the right way to enable bean validation?

        1. soap.tar
          71 kB
          Freeman(Yue) Fang

            hchirino Hiram Chirino
            trohovsky Tomas Rohovsky (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: