Why don't my JSR-168 Portlets work after upgrading Pluto versions?

Updated: July 18, 2007
Why don't my JSR-168 Portlets work after upgrading versions of the Pluto portlet container?
While early versions of Pluto failed to enforce the requirement that allowable content types be declared in portlet.xml portlet application deployment descriptors, later versions of Pluto became more picky in enforcing the JSR-168 specification.

In particular, your JSR-168 portlet portlet.xml must declare "text/html" as a supported mime type. portlet.xml configurations shipping with Academus 2.0 did not include this declaration which was not necessary with the version of Pluto shipping in Academus 2.0. When you migrate to Academus 2.1 or uPortal (or modify your pluto version in-place in Academus 2.0) you will need to add this mime-type declaration to the portlet.xml for your JSR-168 portlets if it is not already present.


<supports>
    <mime-type>text/html</mime-type>
    <portlet-mode>VIEW</portlet-mode>
</supports>

This problem is indicated by "java.lang.IllegalArgumentException: text/html at org.apache.pluto.core.impl.RenderResponseImpl.setContentType" appearing in the portal application logs, typically portal.log.