2

Eclipse で Maven プロジェクトを作成しました。「プロジェクト ファセット」メニューから、Dynamic Web Module、Java、および Java Server Faces を選択しました。jsf-api や servlet-api のように、pom.xml からいくつかの依存関係を正常に追加しました。次に、単純な Java Bean と、その Bean を使用する xhtml ページを作成しました。

「maven clean install」で war ファイルをビルドし、Tomcat に手動でデプロイすると、期待どおりに動作します。しかし、Eclipse から「Run on Server」を選択すると、次のエラーが表示されます。

SEVERE: Servlet /testjsf1 threw load() exception
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
        at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
        at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

Eclipse から実行すると、jsf ライブラリが期待どおりにリンクされていないようです。この動作の原因について何か考えはありますか?

4

1 に答える 1

14

「Project Properties」→「Deployment Assembly」で、「Java Build Path Entries -> Maven Dependencies」を追加すると問題が解決します!

于 2012-08-02T08:57:57.987 に答える