2

Glassfish3.1.1で実行されているJSF2.0アプリケーションがあり、WARファイルのデプロイ時に作成されるアプリケーションルートから物理的に離れた場所にある静的Webページを提供する必要があります。次のようなタグを使用して代替docrootを定義するためのさまざまな参照(これこれなど)を見つけました。

<property name="alternatedocroot_1" value="from=/myimages/* dir=/images"/>

sun-web.xmlに追加されました(Glassfish 3.1.1ではglassfish-web.xmlを意味すると思います)。しかし、私はそれを機能させることができないようです。私の場合、問題は、glassfish-web.xmlが、代替docrootが意味を持つのに十分なコンテキストを定義していないことだと思います。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
  <property name="alternatedocroot_1" value="from=/myimages/* dir=/images"/>
</glassfish-web-app>

私のアプリケーション定義の要点は、glassfish-web.xmlよりもweb.xmlの方がはるかに多いようです。代替のdocrootを参照する代わりに、何かをそこに置く必要があるのでしょうか?

4

1 に答える 1

5

この正確な構成/images/myimagesには、WebサーバーのJVMが実行されているのと同じディスクの絶対ルートに相対的なフォルダーが必要です。foo.pngそのフォルダー内のファイルは、によって使用可能になりますhttp://localhost:8080/contextname/myimages/foo.png

この設定に関する一般的な混乱は、from属性がURLのコンテキストパスとしてのみ解釈され、dir場所の実際のサブフォルダーとしては解釈されないことです。しかし、これは真実ではありません。

Windows環境でGlassfishを実行している場合は、のdirようにディスク文字を指定する必要がありますdir=C:/images

于 2012-05-22T19:30:28.203 に答える