Как я могу служить статическим ресурсам из-за пределов войны на WildFly

Возможно, я ошибаюсь, но, насколько мне известно, в WildFly должно быть возможно следующее:

Должно быть возможно поместить ссылку в мои представления JSF (то есть файлы xhtml) на ресурс (файл pdf, изображение, другой файл xhtml), который уже находится на сервере WildFly.

Я могу сделать то же самое в php и сервере apache.

Где мне нужно будет размещать эти ресурсы и как я могу получить к ним доступ из своих представлений? E. g. поместите ссылку в представление в файл pdf, который открывает файл pdf на новой вкладке.

Большое спасибо за советы и подсказки!

ИЗМЕНИТЬ

standalone.xml

<server name="default-server">
    <http-listener name="default" socket-binding="http" max-post-size="974247881"/>
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content"/>
        <location name="/content" handler="ContentDir"/>
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    </host>
</server>
<servlet-container name="default">
    <jsp-config/>
    <websockets/>
</servlet-container>
<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
    <file name="ContentDir" path="${jboss.home.dir}/standalone/data/unzipped" directory-listing="true"/> 
</handlers>

в представлении JSF

<h:outputLink value="http://localhost:8181/content">KLICK</h:outputLink>

Когда я нажимаю на это, я получаю список каталогов, как вы сказали.

Но как я могу сделать так, чтобы отображался index.xhtml в каталоге, который указывает content? Это действительно то, что я хочу.

content указывает на ${jboss.home.dir}/standalone/data/unzipped, а при распаковке есть index.xhtml, а также другая папка с большим количеством файлов .xhtml.

В index.xhtml имеются относительные ссылки на файлы .xhmtl в папке:

<ul>
    <li><a href="t/rt.html">hg</a></li>
    <li><a href="t/tert.html">jghj</a></li>
    <li><a href="t/gf.html">jghj</a></li>
    <li><a href="t/hg.html">jghj</a></li>
    <li><a href="t/hgfh.html">jghj</a></li>
    <li><a href="t/hfgh.html">jhgj</a></li>
    <li><a href="t/hfgh.html">jhgj</a></li>
    <li><a href="t/hg.html">jghj</a></li>
    <li><a href="t/hghh.html">jghj</a></li>
</ul>

Я хочу отобразить index.xhtml файл в unzipped и оттуда перейти к другим файлам .xhtml.

Что-то вроде этого должно быть возможно, не так ли?

Или как еще вы могли бы написать приложение, в котором пользователь может загружать html файлы на сервер Java ee, а затем просматривать отображаемые файлы?

Ответы

Ответ 1

Возможно, вам не захочется развертывать весь ваш статический контент с вашим приложением. Это могут быть изображения, документы PDF или другие типы файлов. Вы должны настроить Undertow для решения этой проблемы. Ниже приведен пример того, как это сделать, настроив подтеку Undertow.

<server name="default-server">
    <http-listener name="default" socket-binding="http"/>
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content"/>
        <location name="/img" handler="images"/>
    </host>
</server>
<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="false"/>
    <file name="images" path="/var/images" directory-listing="true"/>
</handlers>

С помощью этой дополнительной конфигурации любой запрос ресурсов на www.sampledomain.com/contextroot/img будет перенаправлен в файловую систему на вашем жестком диске. Если вы помечаете атрибут "directory-listing" как false, тогда запросы будут перенаправлены как правильно отображаемый файл.