Доступ к файлу по HTTP с сервера Wildfly

Я столкнулся с проблемой, связанной с доступом к файлам через HTTP в Wildfly (JBoss). Я запускаю приложение на Wildlfy-9.0.1.Final

В моем приложении есть ссылка по клику, она должна открывать соответствующий файл и отображать его содержимое. Но когда я нажимаю на ссылку, мне выдает ошибку 404-не найдено.

Я мог видеть, что файл существует по тому же пути, что и указанный в href в теге привязки. Я не понимаю, что значит выдавать ошибку 404.

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

ИЗМЕНИТЬ:

Мой путь в <handlers> выглядит так

path="/usr/local/jboss/server/default/deploy/"

Эта структура каталогов еще не завершена, так как во время выполнения динамически добавляется дополнительный путь с использованием кода Java, где будет находиться фактический файл.

Например: path="/usr/local/jboss/server/default/deploy/demo/1/filename"

из которых /usr/local/jboss/server/default/deploy/ — статический путь, а demo/1/filename — динамический.

Также в /directory-listing-uri в location некоторый путь динамически генерируется во время настройки.

Например: предположим, что ниже directory-listing-uri

http://[wildfly host]:[port]/{static}/{dynamic}/{dynamic}/{dynamicFileName}.iif

Поэтому я не уверен, как wildfly будет служить моей цели отображения файлов.

Пожалуйста, поправьте, если я не прав.


person mahendra kawde    schedule 16.12.2015    source источник
comment
@Rémi Не могли бы вы помочь мне с этим? Пожалуйста, посмотрите на мое последнее редактирование в вопросе   -  person mahendra kawde    schedule 18.12.2015
comment
Привет, в предыдущей версии вопроса вы сказали, что хотите создавать и загружать файлы с динамическими путями из каталогов за пределами вашего приложения. Так я ответил на это. Теперь ваш вопрос изменился, так как вы хотите открыть файлы, которые находятся внутри вашего EAR (почему бы вам не поместить эти файлы в каталог WAR, упакованный в вашем EAR для этого?) Я предлагаю вам отменить ваши последние изменения вопроса (поскольку вопрос действительно не то же самое сейчас), верните предыдущую версию, на которую я ответил, закройте ее (если вы считаете, что она правильно отвечает на список файлов внешней папки) и спросите новую.   -  person Rémi Bantos    schedule 18.12.2015
comment
И я бы добавил, что, на мой взгляд, не очень хорошо создавать файлы внутри вашего взорванного EAR, вам лучше создать их во внешнем месте, если это возможно.   -  person Rémi Bantos    schedule 18.12.2015
comment
Да, ваш ответ правильный для списка файлов внешней папки. Я только что отменил изменения и создам новую тему по моему текущему вопросу.   -  person mahendra kawde    schedule 18.12.2015
comment
@Rémi, вот моя новая тема stackoverflow.com/questions/34353346/   -  person mahendra kawde    schedule 18.12.2015


Ответы (1)


Чтобы открыть каталог для списка файлов (и загрузки), вы можете добавить два элемента конфигурации в свою конфигурацию standalone.xml (если вы запускаете wildfly как автономный сервер) следующим образом:

<subsystem xmlns="urn:jboss:domain:undertow:2.0">
     ...
     <server name="default-server">
         ...
         <host name="default-host" alias="localhost">
             ...
             <location name="/directory-listing-uri" handler="directory-listing-handler"/>
             ...
         </host>
         ...
     </server>
     ...
     <handlers>
         ...
         <file name="directory-listing-handler" path="/home/example/..." directory-listing="true"/>
     </handlers>
     ...
</subsystem>

Примечание. Для настройки jboss-cli вы можете взглянуть на этот ответ

Затем вы получите хороший графический интерфейс со списком каталогов по этому адресу:

http://[wildfly host]:[port]/directory-listing-uri

person Rémi Bantos    schedule 16.12.2015
comment
Эй, я попробовал то, что вы упомянули выше. Но я все еще застрял, так как большая часть моих path и directory-listing-uri является динамической. Итак, не могли бы вы увидеть мое редактирование в вопросе и посоветовать мне то же самое? Спасибо за ваше время. :) - person mahendra kawde; 17.12.2015
comment
Если directory-listing=true, все файлы и папки, созданные динамически в этом месте, доступны. Поэтому я предполагаю, что вы должны предоставить эти динамические пути от вашего бэкэнда к вашему интерфейсу или вычислить их. - person Rémi Bantos; 17.12.2015
comment
Эй, Реми, сценарий, который я объяснил ранее, был неправильным. простите за это. Но теперь дело в том, что я имею в виду некоторые файлы из разорвавшейся войны, работающие в папке развертываний, и до сих пор не могу получить доступ к файлам через http. Пожалуйста, смотрите мое последнее редактирование. Спасибо - person mahendra kawde; 18.12.2015
comment
Я реализовал приведенный выше ответ, и он работает нормально. Так что, если мне нужны данные из нескольких каталогов. Какие-либо предложения. - person Ashutosh Sagar; 30.04.2019