2015-05-18 106 views
1

我的路线越来越没有找到组件:Route(directRoute)[[From[direct-vm:getAddress]] -> [To[bean-v... because of Failed to resolve endpoint: bean-validator://validator?validationProviderResolver=myValidationProviderResolver due to: No component found with scheme: bean-validator与骆驼的Bean验证

我已经添加以下依赖:

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.1.0.Final</version> 
</dependency> 

    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-bean-validator</artifactId> 
     <version>2.12.0</version> 
    </dependency> 

而且我手动初始化HibernateValidationProviderResolver因为我用骆驼版本2.12。 0。我加入下面一行在我的骆驼的context.xml

<bean id="myValidationProviderResolver" class="com.beanvalidation.example.BeanValidation.HibernateValidationProviderResolver"/> 

这是我的验证豆是如何获取调用获取调用:

<from uri="direct-vm:getAddress"/> 
     <to uri="bean-validator:validator?validationProviderResolver=myValidationProviderResolver"/> 

这里是我的课HibernateValidationProviderResolver我分别包括在我的班级打电话给我,然后打电话给验证人!

HibernateValidationProviderResolver implements ValidationProviderResolver { 

     @Override 
     public List getValidationProviders() { 
     return singletonList(new HibernateValidator()); 
     } 

    } 

这里是POM文件,以获得清晰的想法..

<?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
     <parent> 
      <groupId>com.example.parent.pom</groupId> 
      <artifactId>build</artifactId> 
      <version>0.1.2</version> 
     </parent> 

     <modelVersion>4.0.0</modelVersion> 

     <groupId>com.example.bean-validation</groupId> 
     <artifactId>getAddress</artifactId> 
     <packaging>bundle</packaging> 
     <version>0.0.8-SNAPSHOT</version> 

     <name>Integration :: Service :: UK Address</name> 

     <properties> 
      <jackson.version>1.9.10</jackson.version> 
     </properties> 

     <dependencies> 

      <!-- cxf --> 
      <!-- regular http transport --> 
      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-transports-http</artifactId> 
       <version>${cxf.version}</version> 
      </dependency> 

      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-core</artifactId> 
       <version>${cxf.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-bundle</artifactId> 
       <version>${cxf.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-api</artifactId> 
       <version>${cxf.version}</version> 
      </dependency> 

      <dependency> 
       <groupId>org.springframework.osgi</groupId> 
       <artifactId>spring-osgi-core</artifactId> 
       <version>1.2.1</version> 
       <scope>compile</scope> 
      </dependency> 

      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-context</artifactId> 
       <version>3.0.7.RELEASE</version> 
      </dependency> 

      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-aop</artifactId> 
       <version>3.0.7.RELEASE</version> 
      </dependency> 

      <!-- Core --> 
      <dependency> 
       <groupId>com.example.core</groupId> 
       <artifactId>core</artifactId> 
       <scope>provided</scope> 
       <version>1.0.10</version> 
      </dependency> 

      <!-- cxf web container for unit testing x--> 
      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-transports-http-jetty</artifactId> 
       <version>${cxf.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-core</artifactId> 
       <version>${camel.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-cxf</artifactId> 
       <version>${camel.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-test</artifactId> 
       <scope>test</scope> 
       <version>${camel.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-test-spring</artifactId> 
       <scope>test</scope> 
       <version>${camel.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.osgi</groupId> 
       <artifactId>spring-osgi-mock</artifactId> 
       <version>1.2.1</version> 
       <scope>test</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.felix</groupId> 
       <artifactId>maven-bundle-plugin</artifactId> 
       <version>2.5.0</version> 
      </dependency> 

      <dependency> 
       <groupId>org.codehaus.jettison</groupId> 
       <artifactId>jettison</artifactId> 
       <version>1.3.5</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-jackson</artifactId> 
       <version>${camel.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.codehaus.jackson</groupId> 
       <artifactId>jackson-jaxrs</artifactId> 
       <version>1.9.10</version> 
      </dependency> 

      <dependency> 
       <groupId>javax.validation</groupId> 
       <artifactId>validation-api</artifactId> 
       <version>1.1.0.Final</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-bean-validator</artifactId> 
       <version>${camel.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-validator</artifactId> 
       <version>5.0.1.FINAL</version> 
       <exclusions> 
        <exclusion> 
         <groupId>org.jboss.logging</groupId> 
         <artifactId>jboss.logging</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 

     </dependencies> 

     <build> 
      <!-- defaultGoal>install</defaultGoal --> 

      <plugins> 
       <!-- to generate the MANIFEST-FILE of the bundle --> 
       <plugin> 
        <groupId>org.apache.cxf</groupId> 
        <artifactId>cxf-codegen-plugin</artifactId> 
        <version>${cxf.version}</version> 
        <executions> 
         <execution> 
          <id>generate-sources</id> 
          <phase>generate-sources</phase> 
          <configuration> 
           <sourceRoot>${basedir}/target/generated-sources/jaxws</sourceRoot> 
           <wsdlOptions> 
            <wsdlOption> 
             <wsdl>${basedir}/src/main/resources/wsdl/out/neweb.wsdl</wsdl> 
            </wsdlOption> 

           </wsdlOptions> 
          </configuration> 
          <goals> 
           <goal>wsdl2java</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 

       <plugin> 
        <groupId>org.apache.felix</groupId> 
        <artifactId>maven-bundle-plugin</artifactId> 
        <version>2.3.4</version> 
        <extensions>true</extensions> 
        <configuration> 

         <instructions> 
          <Bundle-SymbolicName>getAddress</Bundle-SymbolicName> 

          <Import-Package>      
           javax.jws, 
           javax.jws.soap, 
           javax.xml.bind, 
           javax.xml.bind.annotation, 
           javax.xml.bind.annotation.adapters, 
           javax.xml.datatype, 
           javax.xml.namespace, 
           javax.xml.ws, 
           javax.ws.rs, 
           javax.ws.rs.core, 
           javax.validation, 
           javax.validation.constraints, 
           javax.validation.metadata, 
           org.apache.camel, 
           org.apache.camel.component.http, 
           org.apache.camel.spring.spi, 
           org.apache.commons.httpclient, 
           org.apache.commons.httpclient.params, 
           org.apache.cxf.feature, 
           org.apache.cxf.jaxrs.provider.json, 
           org.apache.cxf.jaxrs.utils, 
           org.codehaus.jackson.jaxrs, 
           org.slf4j, 
           javax.validation.bootstrap, 
           org.hibernate.validator 
          </Import-Package> 
          <Require-Bundle>org.apache.cxf.bundle</Require-Bundle> 
         </instructions> 
        </configuration> 
       </plugin> 
      </plugins> 

     </build> 

    </project> 

谁能帮助?

回答

1

camel-bean-validator不允许设置validationProviderResolver,直到驼峰版本2.13为止,如documentation中所述。

+0

是的,这就是为什么我将HibernateValidationProviderResolver包含在一个单独的包中,并且我在camel-context.xml中引用它。我编辑了相同的问题。 –

+0

bean-validator组件的版本2.12不知道该选项。无论您是否创建了一个bean,它都会被忽略。这对'没有组件发现'错误没有帮助,我怀疑是因为你的'pom.xml'配置有问题。 –

+0

那么有没有什么办法可以使用camel 2.12.0的camel-bean验证? –