我在JSF2(使用Primefaces)中有應用程序。我解析URL使用h:outputStylesheet
資源,因此鏈接到我的CSS的樣子:通過ajp連接器無法正確解析jsf資源
/project/javax.faces.resource/style.css.xhtml?ln=css
當我在我的服務器上的一切tomcat的部署項目工作正常。我可以看到我的css文件,當我把網址中broswer:
http://myserver.com:8080/project/javax.faces.resource/style.css.xhtml?ln=css
當然,我也可以使用直接鏈接到資源就像訪問它:
http://myserver.com:8080/project/resources/css/style.css
當我配置apache轉發的問題開始請求端口80到tomcat。我嘗試了兩種approches:
- AJP的mod_jk與
- AJP與mod_proxy的
訪問它作爲一個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文件仍然有效:
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
使用
AJP連接JK:
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" />
我用:
- 的Tomcat 7
- 的Java 8
- Primefaces 4.0
是否http://stackoverflow.com/questions/9905946/jsf-url-rewriting-solution-needed包含相關信息? – Kukeltje
我已經看到了。它沒有 - 它是關於更改資源的生成url,但是我的項目的url是好的,只是當通過ajp完成連接時數據被正確填充。 – gawi
此錯誤對於客戶端中不可解析的XML文檔是很典型的。顯然,代理已經設置了一個與XML相關的內容類型頭,因此客戶端(webbrowser)很困惑,並試圖將其解析爲XML。 CSS文件的內容類型必須是「text/css」。 – BalusC