4

我将以下目录结构部署到 JBoss AS 7.1.1.Final(在 下standalone/deployments):

doc.war
    -> module1
        -> index.html
    -> module2
        -> index.html

可以看到,doc.war 下没有 index.html。当我浏览到localhost:8080/doc/module1/时,会显示正确的 index.html,但是当我浏览到localhost:8080/doc/时,JBoss 会显示一条错误消息(404 - The requested resource is not available)。

我认为这与 JBoss AS 7 中默认关闭目录列表这一事实有关。我如何才能全局启用目录列表,或者更具体地为这个应用程序启用目录列表?

编辑

根据 Mukul Goel 的回答,我运行 CLI 命令来添加静态资源功能,重新启动服务器并重试请求,但它不起作用。

这是文件中的相关片段standalone.xml。请注意,我启用了本机连接器。

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="true">
    <configuration>
        <static-resources listings="true"/>
    </configuration>
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
    <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https"/>
    <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
        <alias name="example.com"/>
    </virtual-server>
</subsystem>

这是 JBoss 显示的错误消息:

JBoss 错误消息

更新

所以这个结论似乎是官方 JBoss 7.1.1.Final ( http://www.jboss.org/jbossas/downloads ) 下载存在问题。我没有设法让目录列表与这个版本一起工作。尝试更高版本(来自https://ci.jboss.org/jenkins/job/JBoss-AS-7.x-latest/的 JBoss CI 服务器),我能够在应用配置更改后看到目录列表Mukul Goel 在下面提出的建议。

此问题的潜在来源可能是 JBoss 中使用的 JBossWeb 版本。官方的 7.1.1.Final 捆绑了 JBossWeb 7.0.13。Mukul(见下文)能够让它运行一个捆绑了 JBossWeb 7.0.16 的 JBoss 版本。

我接受 Mukul Goel 的回答来解决这个问题,但请注意,它可能不适用于官方 7.1.1.Final 下载。

4

1 回答 1

8

是的,你是对的,目录列表默认是禁用的(一种安全措施)

在 JBOSS 中启用目录列表

尝试运行以下 CLI 命令以启用目录列表:

在域模式下

/profile=full/subsystem=web/configuration=static-resources/:write-attribute(name=listings,value=true)

.

在独立模式下

/subsystem=web/configuration=static-resources/:write-attribute(name=listings,value=true)

它将生成以下类型的配置:

        <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">

            <configuration>
                <static-resources listings="true"/>
            </configuration>


            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
            <virtual-server name="default-host" enable-welcome-root="true">
                <alias name="localhost"/>
                <alias name="example.com"/>
            </virtual-server>
        </subsystem>

更新:当用户遇到问题时,我自己尝试过

用于独立模式的 RAN CLI 命令

这是生成的,请注意本机已禁用,也没有为我生成 HTTPS 连接器(不知道为什么它显示为您启用?您在某处使用 openSSL 吗?)

来自standalonex.ml 的相关代码

我创建了一个带有两个 html 的示例 webprojet(一个客户端项目),将其发布到 jboss 并点击 url

http://localhost:8080/sample/

这是目录列表的截图

目录列表截图

该命令对我有用,因此确实打开了 JBOSS AS7.1.1 Final 上的目录列表(我也在使用相同的版本)所以问题归结为您的服务器配置的其余部分,您的应用程序结构,您正在使用的技术,弹簧等,如果您使用的是一些 ssl 库。

更新 2 建议一个全新的下载和重新配置环境,看到 nwinkler 即使使用全新的发行版(JbossWeb 7.0.13)仍然面临问题所以建议从夜间构建

ci.jboss.org/jenkins/job/JBoss-AS-7.x-latest

只需转到链接并下载最后一个成功工件下的内容

问题就解决了。看起来像 jbossWeb 7.0.13 的一些错误

一定要浏览评论,讨论可能会有所帮助

于 2012-10-10T06:46:05.577 回答