Reputation: 1
Maybe somebody can help me with this? I have a website which on internet is called “www.mydomain.com”. The webserver as such, I cannot touch or change. Internally behind a BlueCoat reverse proxy the site is called www.mydomain-internal.local. Currently the site is behind a BlueCoat reverse proxy, which is working fine, but I want it to bring it behind an Apache reverse proxy to config later on with Mod_Sec (but is not part of the current setup). When looking with ZAP(previous Paros) I see that the site is running java scripts. When I put the client in front (internet side) of my Apache reverse proxy, everything seems working (I even get a message that the site is loading 30% to 60%) but at the end,before the complete content is displayed, i get the following error displayed:
“A new version of the application has been installed, please reload this page using “CTRL + F5” ".
Also with ZAP i can clearly see that the _utma
and utmz
cookie are written on the client side when behind the BlueCoat, however not when behind the Apache reverse proxy.
I see also an error
"//EX[2,1,["com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","Type 'country.company.shared.rpc.GetCollection' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialised.”],0,5]"
When I look to solve this error, I see that this error should be solved, by modifying code on the webserver, before it can works behind a reverse proxy. But I think in my case something else in my apache config is wrong as the site runs well behind a Bluecoat reverse proxy (which is basically also relying on Apache). My config on the apache is the following:
<VirtualHost *:80>
ServerName www.mydomain-internal.local
#ProxyRequests On
#ProxyVia On
#<Proxy *>
# Order deny,allow
# Allow from all
#</Proxy>
ProxyPass / http://www.mydomain.com/PDF/
ProxyPassReverse / http://www.mydomain.com/
# ProxyPass / ajp://www.mydomain.com/PDF/
# ProxyPassReverse / ajp://www.mydomain.com/
# ProxyPassReverseCookiePath /PDF/
# ProxyPassReverseCookieDomain www.mydomain-internal.local www.mydomain.com
# CacheDisable http://www.mydomain-internal.local/
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mydomain-internal\.local$
RewriteRule /foo(.*)$ http://www.mydomain.com/$1 [P,L]
</VirtualHost>
Can somebody please help me, in a way that I can do the modifications just alone on the Apache and that my site will work?
Upvotes: 0
Views: 388
Reputation: 22441
The IncompatibleRemoteServiceException usually means that the GWT front-end (javascript) is trying to communicate via ajax calls with an incompatible back-end (java servlet container). This can of course happen if you somehow mixed the front-end and back-end versions on the server.
It can also happen after an upgrade if the browser is using a cached version of the old front-end javascript instead of downloading the updated version. If you still get that error after refreshing the browser page, it could mean that the caching configuration in the server is not appropriate for GWT. In other words, the server is not setting the correct response headers to tell the browser which files are ok to cache and which should never be cached. This is important for GWT to work properly.
So in your case, maybe there was some config in BlueCoat to set those headers, and the equivalent config is missing in Apache? Basically you must configure your server to cache files having a name matching the pattern *.cache.*
and to never cache files having the pattern *.nocache.*
. For more info see the section Perfect Caching on the GWT Project site.
Upvotes: 1