启用JBoss AS 7目录列表

nwi*_*ler 4 jboss7.x

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

doc.war
    -> module1
        -> index.html
    -> module2
        -> index.html
Run Code Online (Sandbox Code Playgroud)

如您所见,doc.war下没有index.html.当我浏览到localhost:8080/doc/module1 /时,会显示正确的index.html,但当我浏览到localhost:8080/doc /时,JBoss会显示一条错误消息(404 - 请求的资源不可用).

我认为这与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>
Run Code Online (Sandbox Code Playgroud)

这是JBoss显示的错误消息:

JBoss错误消息

更新

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

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

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

Muk*_*oel 8

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

在JBOSS中启用目录列表

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

在域模式下

/配置=全/子系统=网络/配置=静态资源/:写属性(名称=列表,值=真)

.

在独立模式下

/子系统=幅/配置=静态资源/:写属性(名称=列表,值=真)

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

        <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>
Run Code Online (Sandbox Code Playgroud)

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

用于standaloneMode的RAN CLI命令

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

来自standalonex.ml的相关代码

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

http://localhost:8080/sample/
Run Code Online (Sandbox Code Playgroud)

这是目录列表的屏幕截图

目录列表截图

该命令对我有用,所以这确实打开了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的一些bug

请仔细阅读评论,讨论可能会有所帮助