3

我面临一个与 Wildfly(JBoss) 中通过 HTTP 访问文件有关的问题。我正在 Wildlfy-9.0.1.Final 上运行应用程序

在我的应用程序中有一个点击链接,它应该打开相应的文件并显示其内容。但是当我点击链接时,它给了我 404-Not found 错误。

我可以看到该文件存在于与锚标记中的 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路径中是在tun时间动态生成的。

例如:假设以下是directory-listing-uri

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

所以我不确定 wildfly 将如何满足我显示文件的目的。

如果我不正确,请更正。

4

1 回答 1

7

要公开文件列表(和下载)的目录,您可以在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 配置,你可以看看这个答案

然后,您将在此位置获得一个不错的目录列表 GUI:

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

于 2015-12-16T12:48:22.487 回答