Usar extensões WebSphere para definir mapeamentos do diretório virtual

O mapeamento do diretório virtual WebLogic permite que um aplicativo entregue arquivos como imagens ou arquivos estático que estão localizados fora da raiz do documento do aplicativo. É possível usar os recursos de entrega de arquivos do WebSphere para entregar estes arquivos. Esta regra detecta a presença do elemento <virtual-directory-mapping> no arquivo weblogic.xml. Há uma correção rápida disponível no scanner de origem. A correção rápida o ajuda a criar elementos <fileServingAttributes> correspondentes no arquivo de extensão da web do WebSphere tradicional ou do Liberty.

Por exemplo, o arquivo weblogic.xml pode conter os mapeamentos a seguir:

<virtual-directory-mapping>
<local-path>c:/usr/files</local-path>
<url-pattern>/images/*</url-pattern>
<url-pattern>*.jpg</url-pattern>
</virtual-directory-mapping>

É possível definir as mesmas informações nas extensões da web do WebSphere Application Server, conforme mostrados no exemplo a seguir:

<fileServingAttributes xmi:id ="FileServingAttribute_1" name="extendedDocumentRoot" value="c:/usr/files"/>
<fileServingAttributes xmi:id ="FileServingAttribute_2" name="file.serving.patterns.allow" value="/images/* *.jpg"/>

O atributo de entrega de arquivos extendedDocumentRoot é uma sequência delimitada por vírgulas para mais de uma raiz que existe fora do módulo da web do aplicativo.

O atributo de entrega de arquivos file.serving.patterns.allow é uma sequência delimitada por espaços para mais de um padrão.

Você pode experimentar problemas ao entregar conteúdo dos aplicativos com conteúdo estático em diversos locais. No WebLogic, qualquer virtual-directory-mapping definido está disponível de ambos a raiz de contexto e o local do diretório. No WebSphere Application Server, a propriedade file.serving.patterns.allow limita o acesso a conteúdos estáticos que correspondem a padrões específicos dentro da raiz do documento estendido ou da raiz de contexto.

Dependendo de como os arquivos são organizados, você pode precisar modificar o valor da propriedade file.serving.patterns.allow. Por exemplo,

<fileServingAttributes xmi:id ="FileServingAttribute_1" name="extendedDocumentRoot" value="/common/files"/>
<fileServingAttributes xmi:id ="FileServingAttribute_2" name="file.serving.patterns.allow" value="/images/*"/>

Se você tiver um diretório images no /common/files e um /common/files/images na raiz de contexto, inclua um /common/files/images no valor da propriedade file.serving.patterns.allow.

<fileServingAttributes xmi:id ="FileServingAttribute_1" name="extendedDocumentRoot" value="/common/files"/>
<fileServingAttributes xmi:id ="FileServingAttribute_2" name="file.serving.patterns.allow" value="/images/* /common/files/images/*"/>

É possível permitir acesso mais amplo a arquivos usando a configuração no exemplo a seguir, mas o uso desta configuração pode permitir que mais conteúdo esteja disponível para o aplicativo do que você pretendia.

<fileServingAttributes xmi:id ="FileServingAttribute_2" name="file.serving.patterns.allow" value="*"/>

Para obter informações adicionais e exemplos, veja os recursos a seguir: