Fuse Fabric deployment error | java.lang.Exception: Can not resolve feature - deployment

i am trying to deploy to Fuse Fabric. The application is built using Spring, Camel, CXF, WS-security, drools and Guvnor.
i was able to deploy the application to Karaf container, but when i deploy the same in Fabric using the FAB deployment. it is throwing the below error stack.
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
Firstly, The above error is asking me to include the Junit and mock related frameworks in the Fabric container, which is not required!? these frameworks are added with the "test" scope in the maven.
Secondly, the dependency "aries" is not being used in the project directly. It is used by the camel-cxf framework. But still it is asking the "aries" jars to be mentioned in the dependency. The FAB deployment should take care of these 3rd party dependencies or it defeats the purpose of using it!!
Third, the soap and namespace dependency are present in the maven dependency with the request version. still it is complaining!
i have the following features installed in the fabric
cxf
camel-xstream
camel-jaxb
camel-spring
camel-jms
camel-blueprint
spring
camel-core
fabric-camel
camel-spring-javaconfig
war
and the following maven features URLS
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
and the application is used as the fab
mvn:com.xxxx/ServiceV2/1.0.0-SNAPSHOT
can anyone tell me if i am using enough features or i need more, if so what all needs to be included? why do i need to include the testing frameworks in the fabric? or how do i avoid them being deployed in the fuse fabric?

Related

Which Application Server is used by Quarkus Internally?

Like Spring Boot uses Apache Tomcat, Undertow and Jetty and i have worked on an assignment of same. So just trying to map understanding.
What application server is used by Quarkus?
I have created an application in server and found Jboss libaries, Arjuna Libraries for transaction
which is used by Jboss servers or wildfly servers. But i am not sure whether it is based on Jboss.
Can anyone please clarify?
In short, Quarkus can be thought of as its own application server. However, it is comprised of many open source libraries that have been around for a while, such as:
RESTEasy for JAX-RS
Undertow for the Servlet/Websocket engine
Netty for the network IO layer
Hibernate for JPA
The full set of extensions can be found on the Quarkus Starter website.

Is it possible to deploy akka-http to JBoss?

We are developing an akka-http application. Our infrastructure team requires us to deploy it to JBoss. Is it possible, if yes, how?
I found a plugin called xsbt-web-plugin, it converts a sbt application to a war file. That's all I have so far.

How to Develop CXF webService deploy on Wildfly 10.0 server in Eclipse-maven project

Apache CXF library (cxf-api-3.2.0.jar) detected in ws endpoint deployment; either provide a proper deployment replacing embedded libraries with container module dependencies or disable the webservices subsystem for the current deployment adding a proper jboss-deployment-structure.xml
Wildfly has it's own CXF integration therefore your deployment should not contain CXF libraries. If you want to use this, you'll have to disable Wildfly's CXF stuff as advised in the error message.

Bluemix - jaxb jar

My application uses jaxb jar (jaxb-impl-2.2.1.1.jar)from apache wink.
I deployed my application on bluemix.
When it accesses com.sun.xml.bind.marshaller.CharacterEscapeHandler it fails with NoClassDefFoundError on bluemix.
Does bluemix use some other version of this jar which does not have this class?
How can I check this?
Enable jaxb-2.2 feature:
cf set-env <appname> JBP_CONFIG_LIBERTY "app_archive: {features: ["jsf-2.0", "jsp-2.2", "servlet-3.0", "ejbLite-3.1", "cdi-1.0", "jpa-2.0", "jdbc-4.0", "jndi-1.0", "managedBeans-1.0", "jaxrs-1.1", "jaxb-2.2"]}"
You can also try using OpenJDK
cf set-env myapp JVM 'openjdk'
When you're running on Liberty, you mustn't include the wink jaxb jar in your application and your code should only depend on classes included in the jaxb spec (mostly in the javax.xml.bind package) and not on any wink-specific classes.
You then just need to include the jaxb-2.2 feature in your server.xml.
There's a tutorial for developing jaxb applications on liberty which walks through the steps needed to configure your development environment and your liberty server.

java.lang.LinkageError: JAXB version mismatch issue with CXF 2.3 and JBoss 4.2.3

I am developing a REST web service with Apache CXF 2.3 and deploying in JBoss 4.2.3 GA. When I try to access my web service, I am getting this following error
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader.
I was able to fix this error by adding the correct version of JAXB api jar in \lib\endorsed folder. But I am doubtful whether it will interfere in any other web application JAXB related functionality. One more web application is using some other version of JAXB. Is there any other graceful way of solving this issue. Thanks for any advice.