Я получаю исключение ниже при компиляции вручную сгенерированных Java-файлов управляемого управляемого компонента (JSF2 с аннотациями),
error: Class names, 'javax.faces.bean.ManagedBean,javax.faces.bean.SessionScoped,javax.faces.bean.ManagedProperty', are only accepted if annotation processing is explicitly requested.
Ниже мой код.
List<String> options = new ArrayList<String>();
options.add("-classpath");
options.add(servletContextPath + "WEB-INF\\lib");
options.add("-d");
options.add(servletContextPath + "WEB-INF\\classes");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileMan = compiler.getStandardFileManager(null,
null, null);
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
Iterable<? extends JavaFileObject> fileObjs = fileMan
.getJavaFileObjectsFromStrings(Arrays.asList(javaFileName));
List<String> annotationClassesToCompile = new ArrayList<String>();
annotationClassesToCompile.add(ManagedBean.class.getName());
annotationClassesToCompile.add(SessionScoped.class.getName());
annotationClassesToCompile.add(ManagedProperty.class.getName());
CompilationTask task = compiler.getTask(null, fileMan, diagnostics,
options, annotationClassesToCompile, fileObjs);*/
final Boolean result = task.call();
System.out.println(result.toString() + diagnostics);
for (Diagnostic diag : diagnostics.getDiagnostics()) {
System.out.println(diag.getMessage(Locale.ENGLISH));
}