While most MyFaces apps work seamlessly as a servlet or a portlet, changing a MyFaces appliction into a portlet can sometimes raise issues. There are several circumstances which make it necessary to change sources to get it run. There is also the JIRA entry MYFACES-434 which addresses some of the issues. Shinsuke SUGAYA has done there already a lot work and provides at https://sourceforge.jp/projects/pal/ a MyFaces-bridge (in Japanese).

Any help is welcome to improve the portal support of MyFaces!

Problems

There are some issues, which cause the problems of using MyFaces together with portals.

MyFaces uses also external resources like CSS and JavaScripts files. Some of these files are added by the framework only once to the head part of the generated HTML output. Running as portlet, there is no access to this head as the portlet do not know about its container. For this, special External_Resources implementations are required for specific portal servers.

Generated IDs:

MyFaces uses internal also IDs to identify the controls, but some portal servers rename these IDs (prefixes them for example) which could cause problems with generated JavaScript code. Actually, namespace prefixes are part of the JSF spec and should work okay, presuming that the component is written well

Duplicate IDs are often thrown also during development when some of the jsf-pages are not recompiled completly. Then try to remove all compiled jsp files and it should work again. See also the bullet on Caching