访问包含JBoss中特殊字符的目录

时间:2014-05-07 11:10:41

标签: url encoding jboss

我无法访问JBoss中包含特殊字符的目录。我已经配置了JBoss,因此启用了目录列表。

例如,假设我在JBoss中部署了一个war(myApp.war),其中包含一个名为“Categoría1”的目录。

为了从浏览器访问战争内容,我正确浏览到:

"http://localhost:8080/myApp/"

当我浏览此URL时,我会正确显示内容,包括“Categoría1”目录名称。浏览器显示的URL是获取此目录的链接:

"http://localhost:8080/myApp/Categor%C3%ADa%201/"

但是当我尝试浏览此目录时,出现404错误:

"JBWEB000065: HTTP Status 404 - /myApp/Categor%C3%ADa%201/

JBWEB000309: type JBWEB000067: Status report

JBWEB000068: message /myApp/Categor%C3%ADa%201/

JBWEB000069: description JBWEB000124: The requested resource is not available.

JBoss Web/7.2.2.Final-redhat-1"

我的最终目的是从servlet获取目录内容并解析响应以不同的方式显示这些内容,而不仅仅是因浏览目录而返回的html。但由于我遇到了与字符编码相同的问题,我只是使用Chrome或iExplorer浏览器测试了一些更简单的东西,但问题似乎是一样的。

1 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的方法。它与JBoss配置有关。编码必须设置为UTF-8(在我的例子中)。独立服务器的配置文件位于:

JBoss_base_directory/standalone/configuration/standalone.xml

和要设置的属性:

 <system-properties>
      <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
      <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
 </system-properties>