Servicemix找不到javax.validation包

时间:2013-12-19 15:02:56

标签: java osgi apache-karaf apache-servicemix

我正在使用servicemix-4.4.1,

在我的pom.xml中,我将依赖项定义为:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.3.1.Final</version>
    <scope>provided</scope>
</dependency>

正如您所看到的,我已将范围设置为提供,因为servicemix(osgi容器)将为我们提供jar。

在我的features.xml文件中,我添加了:

<feature name="myapp-libs" version="${version}">
    ....
    <bundle>mvn:org.hibernate/hibernate-validator/4.3.1.Final/jar</bundle>

现在,当我尝试将myapp-libs加载到servicemix中时,我得到以下内容:

karaf@root> features:install myapp-libs
Error executing command: Could not start bundle mvn:org.hibernate/hibernate-validator/4.3.1.Final/jar in feature(s) 
myapp-libs-1.24-SNAPSHOT: Unresolved constraint in bundle org.hibernate.validator [973]: 
Unable to resolve 973.0: missing requirement [973.0] package; (&(package=javax.validation)(version>=1.0.0)(!(version>=2.0.0)))

2 个答案:

答案 0 :(得分:1)

我在features.xml中定义了javax.validation:

<bundle>mvn:javax.validation/validation-api/1.1.0.Final/jar</bundle> 

但是它再也找不到hibernate-validator jar了:

Add a provider like Hibernate Validator (RI) to your classpath.
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 javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110)

这很奇怪,因为在日志中我可以看到正在加载hibernate-validator。

22:53:40,835 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                               

    ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:com.googlecode.guava-osgi/guava-osgi/9.0.0/jar
22:53:42,064 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:commons-lang/commons-lang/2.6
22:53:42,203 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:junit/junit/4.11/jar
22:53:42,312 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:org.apache.thrift/libthrift/0.7.0/jar
22:53:42,441 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:org.apache.cassandra/cassandra-thrift/1.1.0/jar
22:53:42,625 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:org.hectorclient/hector-core/1.1-2/jar
22:53:42,836 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:org.codehaus.jackson/jackson-core-asl/1.9.6/jar
22:53:43,396 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:org.codehaus.jackson/jackson-mapper-asl/1.9.6/jar
22:53:44,396 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:org.codehaus.jackson/jackson-jaxrs/1.9.6/jar
22:53:44,416 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:org.hibernate/hibernate-validator/4.1.0.Final/jar
22:53:44,425 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:javax.validation/validation-api/1.1.0.Final/jar
22:53:44,459 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:org.apache.camel/camel-jackson/2.8.0/jar
22:53:44,467 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle mvn:joda-time/joda-time/1.6
22:53:44,780 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:org.perf4j/perf4j/0.9.16/jar
22:53:45,061 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:org.aspectj/aspectjrt/1.6.1/jar
22:53:46,600 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:org.aspectj/aspectjweaver/1.6.1/jar
22:53:46,867 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:commons-jexl/commons-jexl/1.1/jar
22:53:46,893 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Installing bundle wrap:mvn:com.eaio.uuid/uuid/3.2/jar
22:53:46,899 | INFO  | l Console Thread | FeaturesServiceImpl              | ?                                   ? | 30 - org.apache.karaf.features.core - 2.2.2.fuse-07-11 | Bundles to refresh:

答案 1 :(得分:0)

hibernate-validator需要版本1.0.0或更高版本的javax.validation包,但不是2.0.0。这意味着您需要在功能部件xml中包含另一个捆绑包或确保使用JSR303 / javax.validation支持设置servicemix。