2011-10-18 6 views
1

私は、JSF 2.1(クロサギ科2.1.0 - FCS)を使用しています以下のようにTomcat 7で:クロサギ科2.1.0 - FCSは、Tomcatで動作しない7

<dependency> 
<groupId>com.sun.faces</groupId> 
<artifactId>jsf-api</artifactId> 
<version>2.1.0-b11</version> 
<scope>compile</scope> 
</dependency> 

<dependency> 
<groupId>com.sun.faces</groupId> 
<artifactId>jsf-impl</artifactId> 
<version>2.1.0-b11</version> 
<scope>compile</scope> 
</dependency> 

私はTomcatでそれを実行しようとしたとき、 7次の例外があります:

java.lang.InstantiationException: com.sun.faces.application.ServletContextSensitiveSingletonStore 
    at java.lang.Class.newInstance0(Class.java:340) 
    at java.lang.Class.newInstance(Class.java:308) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4268) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4771) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:785) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:763) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:558) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:674) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:599) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:538) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1390) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:355) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:312) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:292) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:998) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:990) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:424) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:648) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:576) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415) 

私はこの例外をどのようにして解決するのですか?

+0

[JSF 2 setup issue Tomcat 7(java.lang.InstantiationException:com.sun.faces.application.ServletContextSensitiveSingletonStore)](http://stackoverflow.com/questions/5364377/jsf-2-setup-issue-in-tomcat-7-java- LANG-ないInstantiationException-COM-日-顔-A) –

答えて

5

これはknown problemです。これは実際にissue 1937によって引き起こされます。簡単に言えば、注釈スキャナにはGlassfish固有のコードが含まれているため、TomcatやJettyなどの組み込み注釈スキャナを搭載していない基本的なサーブレットコンテナでは機能しません。これは2.1.1で修正されています。

したがって、問題を解決するには、少なくとも2.1.1にアップグレードする必要があります。現在の最新バージョンは2.1.3ですので、最新版をお勧めします。すべてのMavenのpom情報については、Mojarra download pageも参照してください。

全く別の方法は、TomcatをGlassfishのようなより本格的なコンテナで置き換えることです。これにより、EJB/JPAの利点がボックス内でサポートされ、ビジネス・サービスの構築、バックグラウンド・ジョブの実行、オンライナーによるデータベースとの対話などが可能になります。

+0

私は私にだけ、このAPIを使って古い依存関係を置き換える必要があります: ' javax.faces javax.faces-API 2.1'なしでの私はそれをコンパイルするかどうか(私は風袋を使用していることを覚えている)

+0

あなた自身を試してみるか、新しい質問をしてください。私はメイヴンの男じゃない。私は少なくとも、Tomcat **がJSFを同梱していないと言うことができます。したがって、これらのライブラリはwebappの '/ WEB-INF/lib'で終わる必要があります。 – BalusC

関連する問題