2017-10-24 3 views
0

Ich habe selbstsigniertes Zertifikat mit dem Befehl keytool generiert. und erfolgreich konfiguriert https auf jboss Sicherungsebene und Port zugewiesen ist 8443. https://localhost:8443/hawtio/login funktioniert einwandfrei. In Apache CXF bin ich mit dem Problem konfrontiert. Die folgende Konfiguration erfolgt in der Blueprint XML-Datei.Apache CXF Https Ausgabe

<cxf:rsServer address="http://0.0.0.0:9192/" 
     id="serviceOrderEndpoint" serviceClass="pk.com.telenor.so.controller.ServiceOrder"/> 

    <cxfcore:bus/> 

    <httpj:engine-factory bus="cxf"> 
     <httpj:engine port="8443"> 
     <httpj:tlsServerParameters secureSocketProtocol="TLSv1"> 
      <sec:keyManagers keyPassword="password"> 
      <sec:keyStore resource="certs/jbossfuse-dev.jks" password="password" type="JKS"/> 
      </sec:keyManagers> 
      <sec:trustManagers> 
      <sec:keyStore resource="certs/jbossfuse-dev.jks" password="password" type="JKS"/> 
      </sec:trustManagers> 
      <sec:cipherSuitesFilter> 
      <sec:include>.*_WITH_3DES_.*</sec:include> 
      <sec:include>.*_WITH_DES_.*</sec:include> 
      <sec:exclude>.*_WITH_NULL_.*</sec:exclude> 
      <sec:exclude>.*_DH_anon_.*</sec:exclude> 
      </sec:cipherSuitesFilter> 
      <sec:clientAuthentication want="true" required="false"/> 
     </httpj:tlsServerParameters> 
     </httpj:engine> 
    </httpj:engine-factory> 

ich möchte es laufen auf https://localhost:9192/ In pom.xml Datei i platziert haben folgende Abhängigkeiten:

<dependency> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-server</artifactId> 
      <version>9.3.0.M0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws --> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-frontend-jaxws</artifactId> 
      <version>2.5.1</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-transports-http --> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-transports-http</artifactId> 
      <version>2.2.3</version> 
     </dependency> 

Dies ist das Problem, das ich

bin vor
Caused by: java.lang.ClassNotFoundException: org.apache.cxf.jaxb.JAXBDataBinding not found by org.apache.cxf.cxf-rt-wsdl 
+2

Warum mischen Sie verschiedene CXF-Versionen? Warum nicht eine neuere Version verwenden? Die neueste Version ist 3.2.0 –

+0

Ja, stellen Sie sicher, dass Sie die gleiche Version von CXF für alle Ihre CXF-Abhängigkeiten verwenden. Wenn Sie JBoss Fuse verwenden, sollten Sie auch die CXF-Version verwenden, die mit JBoss Fuse ausgeliefert wird. –

+0

@DennisKieselhorst, habe ich CXF-Version auf 3.2.0 aktualisiert. Jetzt das ist das Problem: org.osgi.service.blueprint.container.ComponentDefinitionException: Kann nicht laden org.eclipse.jetty.server.Connector aus Rezept MapRecipe [name = '# rezept-2734'] – Umair

Antwort

0

Wenn Sie haben "https at jboss fuse level" konfiguriert. Ich glaube, Sie meinen, dass Sie in der Datei $ JBOSS_FUSE/etc/org.ops4j.pax.web.cfg konfiguriert sind.

Wenn Ihr cxfrs-Endpunkt dann in den JBoss FUSE-Container implementiert wird, wird empfohlen, dass dieser Endpunkt den von diesem Container verwalteten Servlet-Transport verwendet (HTTP HTTP-Dienst von OPS4J PAXWEB mit Anlegestelle), also Ihre Konfigurationsadresse für den cxf: rssServer sollte relative Adresse wie Adresse = "/ myendpoint" sein, dann können Sie darauf zugreifen von https://localhost:8443/cxf/myendpoint. Da die https bereits auf JBoss FUSE-Ebene konfiguriert sind, benötigen Sie keine <httpj:engine-factory bus="cxf"> ... </httpj:engine-factory> Zeug.

Freeman

+0

Vielen Dank für die Antwort . Wie ich in meiner Frage erwähnt habe, möchte ich auf https: // localhost: 9192/url zugreifen – Umair