启用JBoss AS 7目录列表

时间:2012-10-10 06:38:01

标签: jboss7.x

我将以下目录结构部署到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 - 请求的资源不可用)。

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

修改

根据Mukul Goel的回答,我运行了CLI命令来添加 static-resources 功能,重新启动服务器并重试请求,但它没有用。

以下是standalone.xml文件中的相关摘要。请注意,我已启用 native 连接器。

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

更新

所以对此的结论似乎是官方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下载。

1 个答案:

答案 0 :(得分: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>

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

standaloneMode的RAN CLI命令

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

relevant code from standalonex.ml

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

http://localhost:8080/sample/

这是目录列表的截图

Directory listing screenshot

该命令为我工作,所以这确实打开了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的一些错误

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