2014-04-26 2 views
1

저는 새로운 학습자입니다. 나는 그것을 위해 서블릿을 작성하여 HTML 형식으로 템플릿을 표시하려고합니다. 다음은java.lang.NoClassDefFoundError의 문제점 : org/apache/velocity/context/Context

SEVERE: A child container failed during start 
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] 
     at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
     at java.util.concurrent.FutureTask.get(Unknown Source) 
     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 
     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
     at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
     at java.util.concurrent.FutureTask.run(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     ... 7 more 
    Caused by: java.lang.NoClassDefFoundError: org/apache/velocity/context/Context 
     at java.lang.Class.getDeclaredFields0(Native Method) 
     at java.lang.Class.privateGetDeclaredFields(Unknown Source) 
     at java.lang.Class.getDeclaredFields(Unknown Source) 
     at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) 
     at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263) 
     at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:142) 
     at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67) 
     at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405) 
     at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) 
     at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) 
     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 7 more 
    Caused by: java.lang.ClassNotFoundException: org.apache.velocity.context.Context 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) 
     ... 21 more 

누군가가 나를 도울 수 ... 내 서블릿 코드

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      PrintWriter out = response.getWriter(); 
       VelocityEngine velocityEngine = new VelocityEngine(); 
       try { 
       velocityEngine.init(); 
       Template template = velocityEngine.getTemplate("./src/Menu.txt"); 

       VelocityContext context = new VelocityContext(); 
       context.put("special-1", "./src/special-1.txt"); 
       context.put("special-2", "./src/special-2.txt"); 
       context.put("special-3", "./src/special-3.txt"); 
       StringWriter writer = new StringWriter(); 
       template.merge(context, writer); 
       out.println(writer); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
     } 

그리고 스택 추적 메신저 점점입니다 다음은?

답변

4

당신은 서버 클래스 경로에 속도-version.jar를 추가해야합니다, 당신은 당신의 Tomcat 서버의 LIB 폴더에 넣을 수 있습니다, 또는 당신은 WEB-INF/lib에 폴더에이 병을 넣을 수 있습니다 프로젝트의

0

velocity-1.7 jar를 다운로드하고 eclipse Deployment 어셈블리에 추가 한 다음 서버를 다시 시작하십시오.