2013-09-27 32 views
6

Webサービスクライアントを生成し、Apache CXFでビルドしました。次に、JAX-RS Jerseyアプリケーションがあります。このアプリケーションでは、そのWebサービスからメソッドを呼び出す必要があります。この単純なプロジェクトをGlassfish 4.0サーバーに展開しようとすると、この例外が発生します。Apache CXF webserviceをGlassfishにデプロイする方法

Exception while deploying the app [pelijee] : 
The lifecycle method [finalizeConfig] must not throw a checked exception. 
Related annotation information: annotation [@javax.annotation.PostConstruct()] on annotated element [public void org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.finalizeConfig() throws java.security.GeneralSecurityException,java.io.IOException] of type [METHOD]. Please see server.log for more details. 

コマンドの展開に失敗しました。私はこのプロジェクトを持っている

一つだけCXF依存性がある:

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

は、JSR 250と互換性のある他のCXFのライブラリはありますか?

+0

https://issues.apache.org/jira/browse/CXF-5483これは役に立ちますか? – alkis

答えて

0

Glassfishの課題の1つは、完全なサーバープロファイルがMetro for JAX-WS WebサービスとJersey for JAX-RSレストサービスでパッケージ化されていることです。 WARのWEB-INFフォルダに含まれるsun-web.xmlファイルを使用してクラスローダを設定することをお勧めします。それには次の内容が含まれている必要があります。

<?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> 

以前は、私はまだ展開に問題があることがわかりました。したがって、私は実際にGlassfishサーバープロファイルからMetroとJerseyの機能を完全に削除しました。ここでは、展開に関するさらに詳しい情報があります。私が気づい

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

1つの追加の事はあなたが桟橋輸送を含めたログメッセージを投稿していることです。これは、Jetty HTTPサーバーを実行し、Glassfish HTTPサーバーを実行していることを意味します。 GlassFishをWebサーバーとして使用し、代わりにCXFサーブレットトランスポートを使用することをお勧めします。

関連する問題