2017-01-05 8 views
0

Ich versuche, mein Projekt von EAP 6,3 bis Wildfly Swarm zu konvertieren ...Wildfly Swarm und cxf-rt-Transporte-http

ich mit CXF einige Probleme habe.

ich die Fraktion Abhängigkeit haben:

<dependency> 
    <groupId>org.wildfly.swarm</groupId> 
    <artifactId>camel-cxf</artifactId> 
</dependency> 

Und dann später, ich schließe dies, weil ich sonst ein "package org.apache.cxf.message does not exist" Fehler in meinem Camel Processor Code

<dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http</artifactId> 
     <version>3.1.9</version> 
    </dependency> 

Also, wenn ich schließen es, bekomme ich den Fehler:

Apache CXF library (cxf-core-3.1.9.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 descriptor to it. The former approach is recommended, as the latter approach causes most of the webservices Java EE and any JBossWS specific functionality to be disabled.

Ok, also vielleicht gibt es eine Lib Konflikt Wette ween die camel-cxf Module und mein jar ... oder es nimmt nicht meine jboss-deployment-structure.xml Datei auf?

Ich habe ein paar Dinge versucht, wie von anderen Posts vorgeschlagen.

Ich habe versucht, dies zu jboss-deployment-structure.xml unter $ {basedir}/src/main/webapp/WEB-INF hinzuzufügen und die XML-Datei den webResources des maven-war-plugins hinzuzufügen.

<deployment> 
    <exclude-subsystems> 
     <subsystem name="webservices" /> 
    </exclude-subsystems> 
    </deployment> 

Ich habe auch versucht, diese jboss-Deployment-structure.xml zum Hinzufügen:

<dependencies> 
    <module name="org.apache.cxf" /> 
    <module name="org.apache.cxf.impl" /> 
</dependencies> 

Aber ich halte diesen Fehler. Ich bin mir also nicht sicher, wie ich diesen Konflikt lösen soll. Irgendeine Idee?

Antwort

0

Ein Ansatz besteht darin, die von Jboss bereitgestellten CXF-Bibliotheken zu verwenden und <scope>provided</scope> für cxf-rt-transports-http festzulegen, sodass die CXF-Abhängigkeiten kompiliert und nicht verpackt werden.

Sie finden mehr auf Jboss specific configuration

+0

ich jetzt eine Menge Dinge ausprobiert habe, und es ist immer noch dabei nicht Libs. Das camel-core.jar befindet sich im m2repo des Uberjars und Eclipse zeigt es unter Maven Dependencies. Aber ich bekomme java.lang.NoClassDefFoundError für org.apache.camel. * – djb

+0

Ah. Ich habe alle Abhängigkeiten außer camel-cxf entfernt und erhalte den Fehler nicht. Ungerade. – djb

+0

Das ist, was ich gesagt habe, benutze JBoss bereitgestellte CXF-Bibliotheken und verpacke sie nicht mit deiner Anwendung. – ravthiru