2013-09-27 14 views
6

Ich habe einen Web-Service-Client, der mit Apache CXF erstellt und erstellt wurde. Als nächstes habe ich JAX-RS Jersey-Anwendung, in der ich Methoden von diesem Webservice aufrufen möchte. Wenn ich versuche, dieses einfache Projekt auf dem Glassfish 4.0-Server bereitzustellen, erhalte ich folgende Ausnahme:So stellen Sie den Apache CXF-Webservice für Glassfish bereit

Befehl bereitstellen fehlgeschlagen.

Die einzige CXF Abhängigkeit ich in diesem Projekt ist:

<dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-bundle-jaxrs</artifactId> 
     <version>2.7.6</version> 
     <type>jar</type> 
     <scope>runtime</scope> 
    </dependency> 

Gibt es eine andere CXF Bibliothek kompatibel mit JSR 250? Vielen Dank

+0

https://issues.apache.org/jira/browse/CXF-5483 hilft das? – alkis

Antwort

0

Eine der Herausforderungen von Glassfish ist, dass das vollständige Serverprofil mit Metro für JAX-WS Web Services und Jersey für JAX-RS Rest Services geliefert wird. Es wird empfohlen, den Classloader über eine Datei sun-web.xml zu konfigurieren, die sich im Ordner WEB-INF Ihres WAR befindet. Es sollte folgenden Inhalt enthalten:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE sun-web-app PUBLIC 
    '-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN' 
    'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'> 
    <sun-web-app> 
     <class-loader delegate="false"/> 
    </sun-web-app> 

In der Vergangenheit habe ich festgestellt, dass ich gelegentlich noch Probleme mit der Bereitstellung habe; Daher habe ich tatsächlich die Metro- und Jersey-Features aus dem Glassfish-Serverprofil entfernt. Hier finden Sie weitere Informationen zur Bereitstellung.

http://cxf.apache.org/docs/application-server-specific-configuration-guide.html

Eine weitere Sache, die ich bemerkt, ist, dass Sie eine Log-Nachricht geschrieben, die den Jetty Transport enthalten. Dies bedeutet, dass Sie den Jetty-HTTP-Server ausführen und den Glassfish-HTTP-Server ausführen. Ich würde vorschlagen, Glassfish nur als Webserver zu verwenden und stattdessen den CXF-Servlet-Transport zu verwenden.

Verwandte Themen