2012-03-18 92 views
0

首先我要感谢你的帮助,你可以给我的文件,持久性与JSF

我开发一个JSF的Web应用程序, 当前2.1.7 JSF version

其实,我有一个登录页面,使用一个会话bean, 它调用的逻辑类“PersonCatalog”, 负责读取文本文件.txt与个人有关的信息,如相关数据库,但有文件。

问题是要访问该文件
有史以来我得到一个NullException,因为该程序没有找到该文件。 我不知道我选择的道路,这里是目录herarchy:

应用

|-- build 
|-- src 
     |--eci 
      |--pdsw2012 
       |--shoeople 
        |--beans 
         |--loginBean and others ... 
        |--logic 
         |--PersonCatalog and others... 
        |--persistence 
         |--files 
          |--persons.txt 
|-- WebContent 
     |--WEB-INF 
     |--META-INF 
     |--a lot of xhtml pages ... 

我使用PersonCatalog用于读取person.txt文件后续代码:

File readFile = new File(new String("src/eci/pdsw2012/shoeople/persistence/files/persons.txt")); 

,但我得到:

java.lang.NullPointerException 
at eci.pdsw2012.shoeople.logic.PersonCatalog.loadFile(PersonCatalog.java:31) 

我已经使用了ExternalContext().getRealPath(),但它只显示在Web内容文件夹中。

我使用日食,默认路由就是Eclipse的安装文件夹中,就是这么奇怪:

String ruta = System.getProperty("user.dir"); 
System.out.println("DirAbs: " + ruta.getAbsolutePath()); 

,并打印

C:/Eclipse/ 

预先感谢您为您的帮助, 问候

回答

0

在这种情况下部署的Web应用程序的根将是WebContent文件夹,其中包含WEB-INF

在部署的版本中,src文件被编译为类文件并放置在以下文件夹classes中。

的路径persons.txt将\WEB-INF\classes\eci\pdsw2012\shoeople\persistence\files\persons.txt

+0

嘿谢谢枫,我移动它,然后它的作品!谢谢很多朋友 – Creativelair 2012-03-19 22:47:16

+0

我有一个问题,我不知道如何从.java文件访问该文件,我正在使用:((ServletContext)FacesContext.getCurrentInstance()。getExternalContext()。getContext())。getRealPath(“ /“)+”files/personas.txt“但它不起作用,保存在另一个文件夹中,谢谢! – Creativelair 2012-03-20 22:46:09

+0

@Creativelair这似乎可能是一个不同的问题。您应该将此作为不同的问题发布。 – 2012-03-21 11:24:55