【问题标题】:Servicemix does not find javax.validation bundleServicemix 找不到 javax.validation 包
【发布时间】:2014-01-08 05:10:47
【问题描述】:

我正在使用 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)))

【问题讨论】:

    标签: java osgi apache-karaf apache-servicemix


    【解决方案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:
    

    【讨论】:

    • 您很可能需要配置由 buildDefaultValidatorFactory 构建的 ValidationConfiguration,因为它在包本地类路径中查找,而不是通过 OSGI 查找。在 OSGI 中,存在类路径隔离,这意味着两个单独的包将无法使用传统方法找到彼此。 docs.jboss.org/hibernate/validator/4.3/reference/en-US/html/…
    • 另外,您可能想要更新原始帖子而不是添加评论。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 2011-06-14
      • 2013-01-21
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 2015-12-07
      相关资源
      最近更新 更多