portlet xml looks ok:

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

this defines that your portlet supports the VIEW and the EDIT modes for the text/html mime type. the fact that SupportsDD.portletModes only contains text/html is because this is the only mime type you've declared. That said, edit should work fine and I'm not sure why it's not -- unless you're also setting the content type to something other than text/html.

Can you look at your debugger and tell me if text/html is associated with both of the defined modes or if the EDIT is absent?

Thanks,


David


Patrick Huber wrote:
Hi

I'm currently working on a test portlet and trying to get the edit
mode working. My portlet.xml appears to be fine.

The flow is this:
- i click on an action url
- processAction sets the portlet mode to edit
- i get an error:
javax.portlet.PortletModeException: Can't set this PortletMode
org.apache.pluto.core.impl.ActionResponseImpl.setPortletMode(ActionResponseImpl.java:108)
        
net.swisstech.portlet.test.jsr168.JSR168Portlet.processAction(JSR168Portlet.java:59)
        org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:170)
        org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:113)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.pluto.core.PortletInvoker.invoke(PortletInvoker.java:156)
        org.apache.pluto.core.PortletInvoker.action(PortletInvoker.java:84)
        
org.apache.pluto.core.PortletContainerImpl.doAction(PortletContainerImpl.java:179)
        
org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:102)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


So, I started the debugger to find out some more about this error and got this:
- ActionResponseImpl checks wether a requested mode is in the list of
defined modes from the portlet.xml file. If this is not the case, the
above exception is thrown.
- In my case, SupportsDD.portletModes only contains "text/html"
- After some more debugging, I found
AbstractCastorDescriptorService.readInternal. The unmarshalled object
"object" also only contains the mime-type.
- I've had a look at castor-portlet-xml-mapping.xml but can't tell if
it's correct since I've never used castor myself.

So is there something wrong with my portlet.xml (I think it's fine /
see attachment)? Or is it the castor config?

Thanks
Patrick

--
"I love deadlines. I like the whooshing sound they make as they fly
by." -- Douglas Adams


------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<portlet-app
        xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd";
        version="1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd 
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd";>

        <portlet>
                <description>A JSR168 Test Portlet</description>
                <portlet-name>JSR168Portlet</portlet-name>
                <display-name>JSR168Portlet</display-name>

                
<portlet-class>net.swisstech.portlet.test.jsr168.JSR168Portlet</portlet-class>

                <expiration-cache>0</expiration-cache>

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

                <supported-locale>en</supported-locale>

                <portlet-info>
                        <title>The JSR168Portlet</title>
                        <short-title>JSR168 Portlet</short-title>
                        <keywords>JSR168, Portlet, Test</keywords>
                </portlet-info>

        </portlet>

</portlet-app>

Reply via email to