Я создал bean-компонент ApplicationScoped
, у которого есть метод PostConstruct
с именем start. Всякий раз, когда я хочу получить экземпляр FacesContext
в методе запуска, и он возвращает null
:
@ManagedBean
@ApplicationScoped
public class RemoveOldFilesScheduler implements Serializable {
@PostConstruct
private void start() {
final FacesContext facesContext = FacesContext.getCurrentInstance();
if(facesContext != null) {
String realDownloadDirName = facesContext.getExternalContext().getRealPath("/") + DOWNLOAD_DIRECTORY;
File downloadDir = new File(realDownloadDirName);
if (downloadDir.exists()) {
removeOldFiles(downloadDir.listFiles());
}
}
}
Как я могу получить доступ к facesContext
в этой ситуации?
Я хочу получить реальный путь к моему каталогу загрузки в методе запуска, и я не знаю, как получить путь к моему каталогу без использования FaceContext
.
Есть ли другой способ сделать это?
Listener
, поэтому я могу получить доступ кServletContext
вcontextInitialized(ServletContextEvent sce)
- person Hosein Masbough   schedule 12.10.2014getResourceAsStream
вместоgetRealPath
stackoverflow.com/a/12160863/892994 - person erencan   schedule 12.10.2014FacesContext
имеет значение null и не может получить к нему доступ. - person Hosein Masbough   schedule 12.10.2014@Inject
в управляемом компоненте JSF. - person kolossus   schedule 12.10.2014