-1
このアプリケーションは、HttpServletRequestからいくつかのコードを受け取り、コンパイルし、コンパイル済みコードでファイルを返す必要があります。JavaコードでClosure Compiler APIを統合するNullPointerException
ただし、compiler.compile()呼び出しを実行すると以下のエラーが発生します。 Eclipseでのコンパイル時に警告やエラーメッセージは表示されませんでした。
お願いします。
おかげ
public class MyServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setHeader("Content-Type", "text/javascript;charset=utf-8");
res.setHeader("Content-Disposition","attachment;filename=compiled.js");
PrintWriter printer=res.getWriter();
String compiledCode=compile(req.getParameter("inputScript"));
printer.write(compiledCode);
printer.close();
}
public static String compile(String code)
{
com.google.javascript.jscomp.Compiler.setLoggingLevel(Level.INFO);
com.google.javascript.jscomp.Compiler compiler = new com.google.javascript.jscomp.Compiler();
compiler.disableThreads();
CompilerOptions options = new CompilerOptions();
CompilationLevel.SIMPLE_OPTIMIZATIONS.setOptionsForCompilationLevel(options);
JSSourceFile js = JSSourceFile.fromCode("input.js", code);
WarningLevel.QUIET.setOptionsForWarningLevel(options);
compiler.compile(null, js, options);
return compiler.toSource();
}
}
ERROR:
java.lang.NullPointerException
at com.google.javascript.jscomp.JsAst.<init>(JsAst.java:44)
at com.google.javascript.jscomp.CompilerInput.<init>(CompilerInput.java:91)
at com.google.javascript.jscomp.Compiler.makeCompilerInput(Compiler.java:381)
at com.google.javascript.jscomp.Compiler.initModules(Compiler.java:341)
at com.google.javascript.jscomp.Compiler.init(Compiler.java:317)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:525)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:491)