无法实例化镜像API的类型配置

时间:2014-03-01 18:36:27

标签: java google-app-engine google-glass google-mirror-api

我最近购买了书籍“编程Google Glass - The Mirror API”作者:Eric Redmond,在第2章中,我们将Freemarker GRE .jar文件安装到项目中。当我们必须创建一个呈现模板文件的方法时,有一部分。尝试进行配置时,我一直收到错误。

package com.leetinsider.leetfoodfinder;

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

import javax.security.auth.login.Configuration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import com.sun.org.apache.xalan.internal.xsltc.compiler.Template;

public class LeetFoodFinder {

    public static String getRandomCuisine()
    {
        String[] lunchOptions = {
                "American", "Chineese", "French", "Italian", "Japenese", "Thai"
        };
        int choice = new Random().nextInt(lunchOptions.length);
        return lunchOptions[choice];
    }
    public static String render(ServletContext ctx, String template, Map<String, Object> data) 
            throws IOException, ServletException{
            Configuration config = new Configuration();
            config.setServletContextForTemplateLoading(ctx, "WEB-INF/views");
            config.setDefaultEncoding("UTF-8");
            Template ftl = config.getTemplate(template);
            try{
                //use the data to render the template to the servlet output
                StringWriter writer = new StringWriter();
                ftl.process(data, writer);
                return writer.toString();
            }
            catch (TemplateException e){
                throw new ServletException("Problem while processing template", e);
            }
        }
}

它告诉我,Configuration()无法实现。是否有我失踪的进口商品?我将freemarker-gae2.3.2.0.jar文件放在war / WEB-INF / lib目录中,但我不确定是否还有其他我遗漏的内容。

试着跟着这本书,但这让我退缩:/

enter image description here

1 个答案:

答案 0 :(得分:3)

如果查看import语句,它们指的是同名的非freemarker类。

  1. jar实际上并不在您的构建路径中。右键单击项目并选择“Properties”,然后选择“Java Build Path”。如果freemarker不在Libraries列表中,请选择Add JARs并在项目中找到jar。
  2. 删除“import javax.security.auth.login.Configuration”行。您需要选择Freemarker配置。
  3. 希望有所帮助。