1

JSF2にアプリケーションがあります(Primefacesを使用)。を使用してリソースへの URL を解決するh:outputStylesheetため、css へのリンクは次のようになります。

/project/javax.faces.resource/style.css.xhtml?ln=css

サーバーのTomcatにプロジェクトをデプロイすると、すべて正常に動作します。url を broswer に入力すると、css ファイルが表示されます。

http://myserver.com:8080/project/javax.faces.resource/style.css.xhtml?ln=css

もちろん、次のようなリソースへの直接 URL を使用してアクセスすることもできます。

http://myserver.com:8080/project/resources/css/style.css

ポート 80 で受信したリクエストを tomcat に転送するように apache を設定すると、問題が発生します。私は2つのアプローチを試しました:

  • mod_jk を使用した ajp
  • mod_proxy を使用した ajp

どちらの構成でも、jsf リソースとしてアクセスすると、無効な css ファイルが生成されます。私が置くとき:

http://myserver.com/project/javax.faces.resource/style.css.xhtml?ln=css

次のエラー メッセージが表示されます。

This page contains the following errors:
error on line 1 at column 1: Document is empty
Below is a rendering of the page up to the first error.

ただし、CSS ファイルへの直接 URL は引き続き機能します。

http://myserver.com/project/resources/css/style.css

私の質問は: ajp 構成で見逃したものは何ですか?


ここに設定があります:

ajp ワーカー:

worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13

JK を使用した ajp 接続:

JkMount /project/ ajp13_worker
JkMount /project ajp13_worker
JkMount /project/* ajp13_worker

プロキシを使用した代替 ajp 接続:

ProxyPass /project/ ajp://127.0.0.1:8009/project/
ProxyPassReverse /project/ http://127.0.0.1:80/project/

tomcat server.xml

<Connector port="8009"  enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />

私が使う:

  • トムキャット7
  • Java 8
  • プライムフェイス 4.0
4

1 に答える 1