2015-12-22 1 views
6

je peux me tromper, mais je crois comprendre, ce qui suit doit être possible dans wildfly:Comment puis-je servir des ressources statiques à l'extérieur d'une guerre sur wildfly

Il doit être possible de mettre un lien dans mon point de vue JSF (c'est-à-dire les fichiers xhtml) à une ressource (pdf, image, autre fichier xhtml) qui est déjà sur le serveur WildFly. Je peux faire la même chose en PHP et un serveur Apache.

Où devrais-je mettre ces ressources et comment puis-je y accéder à partir de mes vues? Par exemple. mettre un lien dans la vue à un fichier pdf qui ouvre le fichier pdf dans un nouvel onglet.

Merci beaucoup pour les conseils et astuces !!

EDIT

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> 

lien dans la vue JSF

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

Lorsque je clique sur ce point, je reçois la liste des répertoires, comme vous le dites.

Mais comment puis-je faire en sorte que le index.xhtml dans le répertoire content points est affiché ?? C'est vraiment ce que je veux.

content des points à ${jboss.home.dir}/standalone/data/unzipped et à décompressé il y a une index.xhtml ainsi qu'un autre dossier avec plus .xhtml fichiers.

Dans le index.xhtml il y a des liens relatifs aux fichiers .xhmtl dans le dossier:

<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> 

Je veux afficher le fichier index.xhtml dans unzipped et de là naviguer vers les autres .xhtml fichiers.

Quelque chose comme ça doit être possible, n'est-ce pas?

Ou sinon, comment écrire une application dans laquelle un utilisateur peut télécharger des fichiers html sur un serveur Java ee et voir ces fichiers s'afficher?

Répondre

11

Vous ne souhaitez peut-être pas déployer tout votre contenu statique avec votre application. Il peut s'agir d'images, de documents PDF ou d'autres types de fichiers. Vous devez configurer Undertow afin de résoudre ce problème. L'exemple ci-dessous vous montre comment procéder en configurant le sous-système 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> 

Avec cette configuration supplémentaire, toute demande de ressources à www.sampledomain.com/contextroot/img seront redirigés vers le système de fichiers sur votre disque dur. Si vous marquez l'attribut "directory-listing" comme faux, les demandes seront redirigées en tant que fichier correctement affiché.

+0

En fait, j'aimerais que les utilisateurs puissent mettre à jour le contenu statique eux-mêmes dans un fichier zip, puis y accéder. Si je mets mon contenu statique dans mon application, je sais comment le faire - je les mets juste dans mon dossier webapp. Donc selon votre solution, je pourrais mettre un lien dans mon fichier de vue (le .xhtml) qui pointe vers www.sampledomain.com/contextroot/unfichier.xhtml? Et dans ce fichier .xhtml je pourrais avoir des liens vers d'autres ressources? – user3629892

+0

Votre question ou son titre ne contient aucune déclaration sur le processus de mise à jour, donc ma réponse devient vraie pour la question. Je pense que vous devriez éditer votre question afin d'éviter une mauvaise compréhension. –

+0

Oui, votre commentaire est juste. Vos fichiers .xhtml pourraient pointer n'importe quel pdf, image ou un autre fichier xhtml, mais les fichiers pointés seront affichés en tant que système de fichiers sur votre disque dur. –