我在使用Apache ServiceMix (7.0.0.M1)时遇到了问题。我启动了一个新的服务组合(clean),并简单地安装了事务功能:
karaf@root>feature:install transaction
这会将白羊座交易蓝图放入一个GracePeriod中:
224 | GracePeriod | 80 | 1.1.1 | Apache Aries Transaction Blueprint
225 | GracePeriod | 80 | 2.1.0 | Apache Aries Transaction Blueprint
这使我稍后安装的需要javax事务api的应用程序不会启动。是否有解决此问题的方法?我在使用karaf 4.0.3并尝试安装camel和transaction时也遇到了同样的问题。
下面是所有包的列表(基本服务组合+通过安装上面的事务特性添加的服务组合)。请注意由于GracePeriod超时而导致的故障。
karaf@root>list
START LEVEL 100 , List Threshold: 50
ID | State | Lvl | Version | Name
-------------------------------------------------------------------------------------------------------
10 | Active | 50 | 5.13.0 | activemq-karaf
11 | Active | 50 | 2.6.3 | Jackson-annotations
12 | Active | 50 | 2.6.3 | Jackson-core
13 | Active | 50 | 2.6.3 | jackson-databind
23 | Active | 50 | 3.1.4 | activeio-core
24 | Active | 50 | 5.13.0 | activemq-camel
25 | Active | 50 | 5.13.0 | activemq-osgi
40 | Active | 50 | 2.16.2 | camel-blueprint
41 | Active | 50 | 2.16.2 | camel-catalog
42 | Active | 80 | 2.16.2 | camel-commands-core
43 | Active | 50 | 2.16.2 | camel-core
44 | Active | 50 | 2.16.2 | camel-cxf
45 | Active | 50 | 2.16.2 | camel-cxf-transport
46 | Active | 50 | 2.16.2 | camel-jms
47 | Active | 50 | 2.16.2 | camel-spring
48 | Active | 50 | 2.16.2 | camel-xstream
49 | Active | 80 | 2.16.2 | camel-karaf-commands
51 | Active | 50 | 3.2.2 | Apache Commons Collections
53 | Active | 50 | 3.3.0 | Commons Net
54 | Active | 50 | 1.6.0 | Commons Pool
55 | Active | 50 | 2.4.2 | Apache Commons Pool
93 | Active | 50 | 2.0.0 | geronimo-j2ee-connector_1.5_spec
94 | Active | 50 | 1.0.1 | geronimo-j2ee-management_1.1_spec
99 | Active | 50 | 3.4.6 | ZooKeeper Bundle
129 | Active | 80 | 2.0.9 | Apache MINA Core
132 | Active | 50 | 7.0.0.M1 | Apache ServiceMix :: ActiveMQ :: Camel
133 | Active | 50 | 7.0.0.M1 | Apache ServiceMix :: ActiveMQ :: Service
136 | Active | 50 | 1.6.1.5 | Apache ServiceMix :: Bundles :: dom4j
138 | Active | 50 | 1.9.2.1 | Apache ServiceMix :: Bundles :: jasypt
142 | Active | 50 | 1.1.0.4 | Apache ServiceMix :: Bundles :: jdom
143 | Active | 50 | 2.3.0.2 | Apache ServiceMix :: Bundles :: kxml2
156 | Active | 50 | 1.7.0.6 | Apache ServiceMix :: Bundles :: velocity
160 | Active | 50 | 1.1.4.c | Apache ServiceMix :: Bundles :: xpp3
161 | Active | 50 | 1.4.8.1 | Apache ServiceMix :: Bundles :: xstream
172 | Active | 50 | 3.18.0 | Apache XBean :: Spring
201 | Active | 50 | 0.6.4 | JAXB2 Basics - Runtime
214 | Active | 50 | 2.11.0.v20140415-163722-cac6383e66 | Scala Standard Library
221 | Active | 80 | 1.2.0 | CDI APIs
222 | Active | 80 | 1.2 | javax.interceptor API
223 | Active | 80 | 1.2 | javax.transaction API
224 | Failure | 80 | 1.1.1 | Apache Aries Transaction Blueprint
225 | Failure | 80 | 2.1.0 | Apache Aries Transaction Blueprint
226 | Active | 80 | 1.3.0 | Apache Aries Transaction Manager
227 | Active | 80 | 1.0.2 | Apache Felix Coordinator Service
228 | Active | 80 | 1.0.0.2 | Apache ServiceMix :: Bundles :: javax.inject
我还交叉发布到apache邮件列表中。
发布于 2016-02-25 02:09:55
问题是spring-tx特性安装了JTA1.1规范包。不过,aries事务包需要新的jta 1.2规范。因此,它们找不到绑定到错误规范版本的TransactionManager。
这是由karaf spring-tx功能中的错误引起的。该特性应该依赖于带有dependency=true的JTA1.1规范。这允许karaf解析器选择不同的包来提供合适的功能。
我已经在KARAF-4358中记录了这个问题。这个问题在master和4.0.x分支上得到了解决。因此,它将在karaf 4.0.5中交付。你可以像我一样,通过编辑系统目录中的功能文件来修复你的karaf发行版。
https://stackoverflow.com/questions/35587418
复制相似问题