我不能使用aries jpa / v2.0.0和transactions / v2.0.0

时间:2016-03-05 07:12:08

标签: java xml jpa osgi

我尝试了启用和int blueprint.xml但是我有错误。这是我的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:jpa="http://aries.apache.org/xmlns/jpa/v2.0.0"
           xmlns:tx="http://aries.apache.org/xmlns/transactions/v2.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
           http://aries.apache.org/xmlns/jpa/v2.0.0
           http://aries.apache.org/xmlns/transactions/v2.0.0 ">
    <jpa:enable/>
    <tx:enable-annotations/>
    <service ref="userService" interface="domain.access.UserService"/>
    <bean id="userService" class="domain.access.impl.UserServiceImpl" scope="singleton">
    </bean>
</blueprint>

这是我在pom.xml中的依赖项我包含了所有libs mabe我忘了somthing

<dependencies>
           <dependency>
               <groupId>sqljdbc41</groupId>
               <artifactId>sqljdbc41</artifactId>
               <version>4.1</version>
           </dependency>
           <dependency>
               <groupId>org.apache.servicemix.bundles</groupId>
               <artifactId>org.apache.servicemix.bundles.commons-dbcp</artifactId>
               <version>1.4_3</version>
           </dependency>
           <dependency>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-jpa_2.0_spec</artifactId>
               <version>1.1</version>
           </dependency>
           <dependency>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-validation_1.0_spec</artifactId>
               <version>1.1</version>
           </dependency>
           <dependency>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-jta_1.1_spec</artifactId>
               <version>1.1.1</version>
           </dependency>
           <dependency>
               <groupId>org.apache.openjpa</groupId>
               <artifactId>openjpa</artifactId>
               <version>2.4.1</version>
           </dependency>
           <dependency>
               <groupId>kg.nurtelecom</groupId>
               <artifactId>access-module-api</artifactId>
               <version>1.0.0</version>
           </dependency>
           <dependency>
               <groupId>domain</groupId>
               <artifactId>platform-common</artifactId>
               <version>1.0.0</version>
           </dependency>
           <dependency>
               <groupId>javax.transaction</groupId>
               <artifactId>javax.transaction-api</artifactId>
               <version>1.2</version>
           </dependency>
       </dependencies>

当我开始捆绑时,我有宽限期和日志

2016-03-05 12:34:37,732 | INFO  | l for user karaf | BlueprintContainerImpl           | 15 - org.apache.aries.blueprint.core - 1.4.4 | Bundle kg.nurtelecom.access.module.impl/1.0.0 is waiting for name
space handlers [http://aries.apache.org/xmlns/jpa/v2.0.0, http://aries.apache.org/xmlns/transactions/v2.0.0]

1 个答案:

答案 0 :(得分:1)

在事务2.0.0命名空间中,xml元素名为<tx:enable/>而不是<tx:enable-annotations/>。这与您描述的错误无关。

错误表明您没有安装正确的Aries JPA软件包。请务必安装this example中的所有必要功能。

pom中的依赖项仅涵盖构建时间。在运行时,您必须将依赖项作为karaf功能或单个包提供。

另外请确保使用最新的Apache Karaf。较旧的版本不包括aries transaction 2.0.0 bundle。