2012-08-02 8 views
2

Eclipse에서 Maven 프로젝트를 만들었습니다. "프로젝트 패싯"메뉴에서 동적 웹 모듈, Java 및 Java Server Faces를 선택했습니다. jsf-api 및 servlet-api와 같은 pom.xml의 종속성을 성공적으로 추가했습니다. 그런 다음 간단한 Java bean과 bean을 사용하는 xhtml 페이지를 작성했습니다.Eclipse에서 Maven을 사용하는 JSF 프로젝트가 FacesServlet에 ClassNotFoundException을 제공합니다.

"maven 새로 설치"로 war 파일을 빌드하고 수동으로 Tomcat에 배포하면 예상대로 작동합니다. 이클립스에서 "서버에서 실행"을 선택 때 다음과 같은 오류가 있습니다 :이 이클립스에서 실행하면 예상대로 JSF 라이브러리가 연결되지 않은 것 같다

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) 

. 이 문제의 원인에 대해 알고 계십니까?

+0

이게 내 문제를 해결했습니다. (사실 우리는 lib 디렉토리에 lib 디렉토리에 다운로드 한 javen 파일을 추가합니다.이 파일들은 maven에 의해 자동으로 빌드 경로에 추가되었지만 lib maven은 그것을하지 않습니다) –

답변

13

"프로젝트 속성"-> "배포 어셈블리"에서 "Java 빌드 경로 항목 -> Maven 종속성"을 추가하면 문제가 해결됩니다!

+0

이것은 작동하지 않습니다 더 이상. 이 솔루션을 사용하면 ClassNotFoundExceptions가 훨씬 더 많습니다. – Bevor

+0

이것은 나를 위해 일했습니다, 당신을 감사합니다 – jekennedy

+0

, 내 도움이 많이 –

관련 문제