使用Camel Bean验证器组件

时间:2014-08-12 07:48:05

标签: java apache-camel

使用Camel Bean Validator时出现异常。 No component found with scheme: bean-validator例外 我在我的POM中有这些依赖

<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.13.2</version> 
    <scope>provided</scope>
</dependency>

我正在使用Bean Validator组件,如下所示

from("direct:XXX").process(new Processor() {
    @Override
    public void process(Exchange exchange) throws Exception {
        Car car = new Car();
        //car.setVehicleId(1);
        car.setName("Swift");
        car.setCompany("Maruti");

        exchange.getIn().setBody(car);              
    }
}).to("bean-validator://x").process(new Processor() {
    @Override
    public void process(Exchange arg0) throws Exception {
        LOG.debug("Bean Validation is Success");
    }
});

但是当我将生成的战争部署到Wildfly时,我得到异常No component found with scheme: bean-validator。令我惊讶的是,代码在独立应用程序中运行良好。 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

问题是您将范围定义为提供的,这意味着JAR通常已经是服务器的一部分。您通常只使用API​​ JAR提供的范围,例如servlet api等。

所以改变这个

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-bean-validator</artifactId>
    <version>2.13.2</version> 
    <scope>provided</scope>
</dependency>

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