2011-07-15 13 views
8

EclipseワークスペースからNetBeansにインポートしたWebアプリケーションをデプロイしようとしています。しかし、それは展開されていない、代わりにそれは私に以下の例外を与えている。java.lang.NoClassDefFoundError:javax/faces/FacesException

15 Jul, 2011 5:59:04 AM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.apache.myfaces.component.html.util.StreamingDestroyerListener 
java.lang.NoClassDefFoundError: javax/faces/FacesException 
     at org.apache.myfaces.shared_tomahawk.config.MyfacesConfig.<clinit>(MyfacesConfig.java:80) 
     at org.apache.myfaces.component.html.util.StreamingDestroyerListener.contextInitialized(StreamingDestroyerListener.java:32) 
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:521) 
     at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1359) 
     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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) 
     **at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) 
     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)** 
     at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1500) 
     at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:849) 
     at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:351) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:199) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
     at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859) 
     at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 
     at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) 
     **at java.lang.Thread.run(Thread.java:619)** 

いくつかのJARがありませんか?

答えて

8

NoClassDefFoundErrorクラスが存在したことを意味します。これは次のように、あなたがfindjar.comにクラス名を貼り付け&を切断してそれを見つける

javax.faces.FacesException 

:クラスローダは、これを見つけることができませんコンパイル時のクラスパスTomahawk氏は、コードベースにはimport javax.faces.FacesException;という行があります。これは、コアJSF APIのクラスの1つです。

これは、WebアプリケーションのクラスパスにJSFライブラリがないことを意味します。このプロジェクトはNetBeansにあって、Glassfish、JBoss ASなどのJSFにすでにバンドルされているサーバーと明らかに関連していました。Eclipseのプロジェクトは一見サーバーと適切に関連付けられていないか、ではなくにJSFがバンドルされていますTomcat、Jettyなど

stacktraceは、Tomcatを使用していることを示します。 download JSFを別にしてJARファイルをwebappの/WEB-INF/lib(Tomahawkライブラリもあります)にドロップしてください。

+0

Jettyで同じエラーが発生した場合( 'mvn jetty:run'を実行しています)?私はJSF jarを 'WEB-INF/lib'に入れようとしましたが、助けにはなりませんでした。 –

+0

@Dmitri:Mavenには、依存関係を管理する別の方法が必要です(heck、**は依存関係を管理する方法です**)。 'pom.xml'で設定する必要があります。 – BalusC

+0

私は知っているし、それぞれの依存関係をJetty設定セクションに追加しました。 ClassNotFoundErrorは終了しましたが、java.lang.ClassFormatError:クラスファイルjavax/faces/component/html/HtmlOutcomeTargetButton'のネイティブでも抽象メソッドでもないメソッドにコード属性がありません。 –

0

異なる経験を追加するには:私はICEfacesをを使用していたし、Tomcatの$CATALINA_BASE/libディレクトリにICEfacesをjarファイルが含まれていますが、私のWebアプリケーションの/WEB-INF/libディレクトリにjavax.faces.jarを含めていたので、それがあった。この問題に遭遇したとき。私の解決策は、javax.faces.jar/WEB-INF/libから$CATALINA_BASE/libに移動することでした。また、ICEFacesのようなものを使用する場合は、正しいバージョンのjavax.faces.jarを使用してください。