2015-02-27 2 views
1

У меня есть мой код, развернутый как EAR на WAS7. Я хочу прочитать местоположение файла, которое постоянно обновляется с помощью набора файлов. Я уже разбираю набор файлов для дальнейшей обработки в локальной среде. Однако, когда я развертываю EAR на своем сервере, местоположение файла (я помещал файлы внутри моего местоположения проекта для тестирования) не читается.Доступ к расположению файла из EAR, развернутого на Websphere

Очевидно, что это дает мой «FileNotFoundExcpetion». Я не уверен, как должно быть указано расположение файла?

Как я могу получить доступ к этому файловому местоположению и каков должен быть способ предоставить это местоположение файла в моем коде, если я развернул приложение на сервере? Это местоположение файла может быть любым удаленным расположением файла. просто для тестирования я импортировал эти файлы в свою локальную рабочую область.

+0

Как только я развожу свой EAR на сервере, он должен искать необходимые файлы в этом месте. Я поставил желаемый код, чтобы сделать это. Однако я не могу правильно разместить местоположение файла. – JavaJo

ответ

1

В общем:

1) Если включить файлы на «Src» уровне в проекте Eclipse, J2EE, то эти файлы будут включены в WEB-INF в вашем .WAR (как развертывается в вашем. ухо).

2) Для того, чтобы прочитать эти файлы во время выполнения, вы обычно используете:

servletContext.getResourceAsStream("/WEB-INF/myfile");

3) В качестве альтернативы, возможно, потребуется вызвать getClass().getClassLoader().getResourceAsStream()

Вот хороший пример:

How to read a properties file in a web application

+0

Я ценю ваш ответ. Но расположение файла может быть любым удаленным местоположением. Просто для тестирования я поставил его внутри src. И приложение должно искать файлы, как только я разворачиваю его на сервере. – JavaJo

1

Если вам нужно расположение файла, я бы предложил передать его в приложение usi нг переменной среды в web.xml, как это:

<env-entry> 
    <env-entry-name>filePath</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>/path/to/file.txt</env-entry-value> 
</env-entry> 

затем получить доступ к нему в вашем коде, используя

@Resource(name="filePath", type=String.class) 
private String filePath; 

вы сможете изменить значение этой переменной также с помощью консоли после развертывания, если вам это нужно.

+0

Я согласен с вами в этом. На самом деле у меня есть файл, в котором есть несколько файлов, которые мне нужно проанализировать. И я хочу, чтобы это местоположение файла было доступно, как только я развертываю EAR на сервере. Я не уверен, как разместить местоположение файла. Я не уверен в правильности расположения файла. Я всегда получаю исключение File not Found. Не могли бы вы рассказать мне, как я могу это выразить? – JavaJo

Смежные вопросы