我正在尝试部署到 Fuse Fabric。该应用程序是使用 Spring、Camel、CXF、WS-security、drools 和 Guvnor 构建的。
我能够将应用程序部署到 Karaf 容器,但是当我使用 FAB 部署在 Fabric 中部署相同的应用程序时。它抛出以下错误堆栈。
java.lang.Exception: Can not resolve feature:
Unsatisfied requirement(s):
---------------------------
package:(&(package=org.ops4j.pax.exam.options)(version>=1.2.0)(!(version>=2.0.0)))
Apache Aries Unit Test Support
package:(&(package=org.apache.aries.mocks)(version>=0.3.0))
com.eissDemo.ServiceV2
package:(&(package=org.ops4j.pax.exam)(version>=1.2.0)(!(version>=2.0.0)))
Apache Aries Unit Test Support
package:(&(package=javax.xml.namespace)(version>=5.0.0.2)(version<=5.0.0.2))
com.eissDemo.ServiceV2
package:(&(package=org.apache.aries.unittest.fixture)(version>=0.4.0))
com.eissDemo.ServiceV2
package:(&(package=org.apache.aries.unittest.mocks.annotations)(version>=0.3.0))
com.eissDemo.ServiceV2
package:(&(package=org.apache.aries.itest)(version>=0.4.0))
com.eissDemo.ServiceV2
package:(&(package=javax.xml.soap)(version>=5.0.0.2)(version<=5.0.0.2))
com.eissDemo.ServiceV2
package:(&(package=org.junit))
Apache Aries Unit Test Support
package:(&(package=org.apache.aries.unittest.mocks)(version>=0.3.0))
com.eissDemo.ServiceV2
package:(&(package=org.apache.aries.unittest.junit)(version>=0.3.0))
com.eissDemo.ServiceV2
package:(&(package=javax.persistence)(version>=5.0.0.2)(version<=5.0.0.2))
com.eissDemo.ServiceV2
package:(&(package=junit.framework))
Apache Aries Unit Test Support
package:(&(package=org.objectweb.asm)(version>=3.3.1)(version<=3.3.1))
com.eissDemo.ServiceV2
首先,上面的错误是要求我在Fabric容器中包含Junit和mock相关的框架,这不是必须的!?这些框架在 Maven 中添加了“测试”范围。
其次,项目中没有直接使用依赖“aries”。camel-cxf 框架使用它。但它仍然要求在依赖项中提到“aries”罐子。FAB 部署应该处理这些 3rd 方依赖项,否则它会破坏使用它的目的!!
第三,soap 和命名空间依赖存在于请求版本的 maven 依赖中。还是在抱怨!
我在结构中安装了以下功能
cxf
camel-xstream
camel-jaxb
camel-spring
camel-jms
camel-blueprint
spring
camel-core
fabric-camel
camel-spring-javaconfig
war
以及以下 Maven 功能 URL
mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.6.0.redhat-60024/xml/features
mvn:org.apache.cxf.karaf/apache-cxf/2.6.0.redhat-60024/xml/features
mvn:org.jboss.fuse/jboss-fuse/6.0.0.redhat-024/xml/features
mvn:org.apache.camel.karaf/apache-camel/2.10.0.redhat-60024/xml/features
并且该应用程序被用作晶圆厂
mvn:com.xxxx/ServiceV2/1.0.0-SNAPSHOT
谁能告诉我是否使用了足够的功能或者我需要更多功能,如果需要,需要包括哪些内容?为什么我需要在结构中包含测试框架?或者我如何避免它们被部署在保险丝结构中?