【问题标题】:Persistence with files in JSF [duplicate]JSF中文件的持久性[重复]
【发布时间】:2012-04-03 02:57:19
【问题描述】:

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

实际上,我有一个登录页面,与会话 bean 相关联, 调用逻辑类“PersonCatalog”, 它负责读取带有人员信息的文本文件.txt,就像数据库一样,但带有文件。

问题是访问文件,
因为程序找不到文件,所以我得到一个 NullException。 我不确定我选择的路径,这里是目录层次结构:

应用

 |-- 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-content 文件夹中。

我用的是Eclipse,默认路径是Eclipse的安装文件夹,好奇怪:

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

和打印

 C:/Eclipse/

【问题讨论】:

    标签: java eclipse jsf path relative-path


    【解决方案1】:

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

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

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

    【讨论】:

    • 嘿,谢谢枫,我移动它,然后它就可以工作了!!非常感谢朋友
    • 我有一个问题,我不知道如何从 .java 文件访问该文件,我正在使用:((ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext())。 getRealPath("/") + "files/personas.txt" 但是不行,保存到另一个文件夹,谢谢!
    • @Creativelair 这似乎是一个不同的问题。您应该将此作为不同的问题发布。
    猜你喜欢
    • 2014-05-11
    • 2014-02-05
    • 2013-03-13
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多