Java 无法获得Freemarker的基本实现

Java 无法获得Freemarker的基本实现,java,servlets,freemarker,Java,Servlets,Freemarker,我正在尝试从Servlet配置Freemarker模板,如下所示: import java.io.IOException; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.H

我正在尝试从Servlet配置Freemarker模板,如下所示:

import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
@WebServlet("/Controller")
public class Controller extends HttpServlet {

    // class fields
    private static final long serialVersionUID = 1L;
    private static final String views = "/WEB-INF/views/";

    public Controller(){

    }

    // used to handle any get requests i.e. webpage navigation
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Configuration conf = new Configuration();
        conf.setClassForTemplateLoading(Controller.class, views);
        conf.setDefaultEncoding("UTF-8");

        Template indexTemplate = conf.getTemplate("index.ftl");
        StringWriter writer = new StringWriter();
        Map<String, Object> indexMap = new HashMap<String, Object>();
        indexMap.put("name", "Chris");

        try {
            indexTemplate.process(indexMap, writer);
        } catch (TemplateException e) {
            e.printStackTrace();
        }

        System.out.println(writer);

    }
}
以下是文件结构:


我在这里做错了什么?

这个错误无关紧要。这基本上是一个总结,告诉你
/webapp
的部署失败了,你早就知道了。您需要在服务器日志中进一步查找导致部署失败的实际问题,然后将其共享(如果尚未完成,则将其复制粘贴到Google以获取答案)。此外,由于部署失败,其原因不可能是
doGet()
中的内容。除非,否则您将错过部署中的
freemarker.jar
,这将导致类链接错误。
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/webapp]]
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1122)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    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[/webapp]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 6 more