1

Tomcat 7 で動作する JSF2/RichFaces 4 Web アプリケーションを実装しています。Tomcat 7 で MyEclipse を使用して Eclipse で開発しました。すべて正常に動作します。アプリケーションを完全な実稼働環境にデプロイすると、リソース ライブラリの images/css/js ファイルが Apache から 404 を受け取ります。実稼働環境は、SSL と mod_proxy フロントエンドの Tomcat 7 を備えた Apache 2 です。プロキシの設定が間違っているのではないかと疑っています。Tomcat Web アプリケーションの実行中に、Apache GET 要求が適切にプロキシされていませんが、そうではありません。私はその理由を理解するのに十分知っていると思います。

上から順に、プロキシを使用した Apache 仮想ホストを示します (ssh の場合は *:443 に注意してください)。

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName testapp.xxx.org

    SSLEngine on
    SSLProxyEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile /etc/pki/tls/certs/testapp.xxx.org.crt
    SSLCertificateKeyFile /etc/pki/tls/private/testapp.xxx.org.key

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    # Proxy everything to tomcat.
    ProxyPass         /      http://localhost:8080/testapp/
    ProxyPassReverse  /      http://localhost:8080/testapp/
</VirtualHost>

https://testapp.xxx.orgにアクセスすると、アプリケーションが起動して JSF が表示されますが、CSS も js も画像もありません。そのような画像リソースの HTML は次のようになります。これは正しいものです (Eclipse でも同じです)。

<img src="/testapp/javax.faces.resource/images/tairlogo.png.xhtml?ln=default" alt="TAIR web site" />

これは webapp コンテキスト ルートから開始し、リソース ライブラリを探します。対応する Apache アクセス ログ GET は次のとおりです。

"GET /testapp/javax.faces.resource/images/tairlogo.png.xhtml?ln=default HTTP/1.1" 404 12500

このイメージの実際の JSF コードは次のとおりです。

  <h:outputLink value="http://www.arabidopsis.org">
    <h:graphicImage library="default" name="images/tairlogo.png"
      alt="TAIR web site"></h:graphicImage>
  </h:outputLink>
4

1 に答える 1