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>