Vaadin portlet refresh on Oracle portal

Hello,

I’m working on a vaadin portlet made in an Oracle Webcenter Suite portal. I have managed to get a working portlet sample to display in portal and it seems to be working (events fire, GUI works in general).

However portal creates a refresh button on the outline of the portlet and when I click it, my portlet displays an empty panel with loading progress indicator (see attachments). The portlet doesn’t get rendered then. The same problem occurs when I minimize and then maximize the portlet. It also appears if I have two different pages with each containing one different portlet, when I open the first page, the portlet renders and I can use it but when I click the other page, the second portlet displays empty panel and progress indicator which does not end.
If I only open the page on which the portlet is located and do not touch the refresh/minimize controls or other pages the portlet works fine.

Portlet is created with WSRP addon (in a Portlet producer project in JDeveloper and a portlet consumer on the portal, which creates a reference to the deployed portlets, so I can add them on a portal page).

I have also tryed to implement the PortletListener interface and when I click the “refresh” button I get the printout from handleRenderRequest method but nothing I do then seem to have any effect on the rendering of the portlet. Also I don’t know how to distinguish the refresh button render request from all other render requests (for instance on first load).

Can anyone help me, please?

Here is the source code for the portlet:

package si.test;

import com.vaadin.Application;
import com.vaadin.addon.wsrp.WSRPPortletContext;
import com.vaadin.terminal.gwt.server.PortletApplicationContext2;
import com.vaadin.terminal.gwt.server.PortletApplicationContext2.PortletListener;
import com.vaadin.ui.Label;
import com.vaadin.ui.Window;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.EventRequest;
import javax.portlet.EventResponse;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;

public class PlainVaadinPortlet
extends Application
implements PortletListener
{
private Window mainWindow = null;

@Override
public void init()
{
mainWindow = new Window("Portlet Example");

Label label = new Label("Hello Vaadin user");
mainWindow.addComponent(label);
setMainWindow(mainWindow);

// Check that we are running as a portlet.
Object o = getContext();
System.out.println("Context: " + getContext().getClass());

if (o instanceof WSRPPortletContext)
{
    PortletApplicationContext2 ctx =
	       (PortletApplicationContext2) getContext();

    // Add a custom listener to handle action and
    // render requests.
    ctx.addPortletListener(this, this);
}
else
{
    System.out.println("Not running in portal");
}
}

public void handleRenderRequest(RenderRequest renderRequest,
			    RenderResponse renderResponse,
			    Window window)
{
System.out.println("render request...");
}

public void handleActionRequest(ActionRequest actionRequest,
			    ActionResponse actionResponse,
			    Window window)
{
System.out.println("handle action request...");
}

public void handleEventRequest(EventRequest eventRequest,
			   EventResponse eventResponse,
			   Window window)
{
System.out.println("handle event request...");
}

public void handleResourceRequest(ResourceRequest resourceRequest,
			      ResourceResponse resourceResponse,
			      Window window)
{
System.out.println("handle resource request...");
}

}
11952.png
11953.png

Anyone???

Hi Miha,

did you found the solution to this problem : I have the same !!!

Thanks