Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run PrimeFaces behind reverse proxy in a subdomain?

I have build an application with PrimeFaces and want to run that behind an apache reverse proxy.

My target url looks like this http://myserverurl.org:8080/myapplication/.

I want to access the application via subdomain like this http://myapplication.myserverurl.org.

I have configured a VirtualHost in apache:

<VirtualHost *:80>
    ServerName myapplication.myserverurl.org
    ProxyPass / http://myserverurl.org:8080/myapplication/
    ProxyPassReverse / http://myserverurl.org:8080/myapplication/
</VirtualHost>

That works not so well. I can see the JSF page, but there is no CSS applied etc. I can see that the first request is redirected correctly, but the following requests (to load jQuery, CSS, etc.) are not.

They try to access an url like http://myapplication.myserverurl.org/myapplication/faces/javax.faces.resource/primefaces.js?ln=primefaces which is obviously wrong. They must not include the /myapplication/ path again, since the proxy redirects already to that path.

How can I solve this issue? Is this a PrimeFaces problem or a problem with my reverse proxy configuration?

like image 441
flash Avatar asked Oct 30 '12 12:10

flash


1 Answers

Using (or not using) AJP has no bearing on resolving this specific issue.

Primefaces internally uses context path variable to include CSS and Javascript resources. Even using AJP you will end up with:

/unwantedAppContext/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces

What you could do to resolve this add another proxy pass to handle the unwanted context. This may not be the best solution, but it works.

<VirtualHost *:80>

    ServerName myapplication.myserverurl.org

    ProxyPass /myapplication/ http://myserverurl.org:8080/myapplication/
    ProxyPassReverse /myapplication/ http://myserverurl.org:8080/myapplication/

    ProxyPass / http://myserverurl.org:8080/myapplication/
    ProxyPassReverse / http://myserverurl.org:8080/myapplication/
</VirtualHost>

The order of the pass matters.

This issue was also reported in the icefaces forum http://www.icesoft.org/JForum/posts/list/4433.page#sthash.h1qSqiYg.dpbs

like image 165
dreamwagon Avatar answered Nov 15 '22 21:11

dreamwagon