2010-11-20 6 views
2

GlassfishでJersey(組み込み)を使用してRESTサービスを作成しようとしています。私はGlassFish Server Open Source Edition 3.0.1(ビルド22)をインストールしました。これは私のweb.xmlです:私はWARを展開しようとすると、GlassfishがJersey WebApplicationProviderImplを見つける/インスタンス化できません

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <servlet> 
     <servlet-name>javax.ws.rs.core.Application</servlet-name> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>javax.ws.rs.core.Application</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

はしかし、私はこれを取得:

java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [com.sun.jersey.server.impl.container.WebApplicationProviderImpl], because it has not yet been started, or was already stopped 
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1367) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:236) 
    at com.sun.jersey.spi.service.ServiceFinder$LazyObjectIterator.hasNext(ServiceFinder.java:851) 

だから私は何ができるのでしょうか?クラスパスの問題のように見えますが、これはすべてグラスフィッシュの深い部分です。

また、hereと記載されているように、GlassfishのJerseyコンポーネントを1.4にアップデートしようとしましたが、変更はありませんでした。

答えて

-1

私は原因を見つけました自分自身の問題。明らかに、タイプを明示的に選択したとしても、JARファイルをWebアプリケーションとしてデプロイすると、Glassfishは深く混乱します。私がしなければならなかったのは、ファイルサフィックスをWARに変更することだけでした。最初は別のエラーがありましたが、解決策を見つけるのがずっと簡単でした。

+2

私は思わないファイルの種類には関係があります。私はWARファイルで全く同じエラーが発生します。私はこのバグレポートを提出しました:http://java.net/jira/browse/GLASSFISH-18482 – Gili

1

それが役立つかもしれない、私のブログから、次の例をご覧ください:

を私のweb.xmlは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
    <persistence-context-ref> 
     <persistence-context-ref-name>persistence/em</persistence-context-ref-name> 
     <persistence-unit-name>CustomerService</persistence-unit-name> 
    </persistence-context-ref> 
</web-app> 
+0

ありがとうございます - ただし、唯一変更されるのは、エラーメッセージが表示されるクラスです。 "WEB9031:WebappClassLoaderはリソース[com.sun.jersey.spi.container.servlet.ServletContainer]をロードできません" –

関連する問題