Thursday, 31 January 2008

WebLogic 9 and enabling static file reloads

PeopleTools 8.49 ships with WebLogic 9. The Oracle supplied default configuration will not check if static resources (files) located in your PORTAL home directory have been changed.

The resulting problem is that if you change your index.html file (or any static resource) then WebLogic server will correctly pass the new file back to the client but for some reason WebLogic decides to pickup the fact that the file has changed but not that the size of the file has changed. So when WebLogic attempts to send the new file to the client it keeps the content-length directive in the http header the same as the original. The new file is therefore truncated if the new one is larger or you get a server error if it's shorter. The workaround ? .... reboot PIA whenever a static resource changes. Clearly not a viable option.

Of course in the PeopleSoft application all static files (.js, .jpg, .css, etc) are served using the cs servlet so if you are 100% vanilla with no need to change any static files on your PS web server then this will never be a problem for you.

The solution is to add the following directive (in bold) into the weblogic.xml file under WEB-INF inside the container-discriptor section.


I have found that if you reload the web profile using the (undocumented and probably unsupported) web server PIA directives then you can make a change to the signon.html file and have these changes take effect without bouncing the PIA service. Just make the change to the file and use the
?cmd=reloadconfig switch.


Stan the Man said...

I have been looking for ths solution for YEARS! We have a need to post system status messages on the signon page and it's been broken ever since we upgraded to PT 8.49+. This solution works like a charm! Thanks for posting it, Graham.

bozz22 said...

Brilliant - I spent hours, now it's fixed. Thanks!

Vince Tran said...

We've just upgraded to 8.53 with weblogic 12c. Will the reloadconfig option work under 12c? Thank you.