LifeRay 5.2.2 Integration Issues

souldad57's picture
User offline. Last seen 1 year 10 weeks ago. Offline
Joined: 04/24/2009
Points: 20

 I have successfully installed the presto-liferay connector war file into a Liferay 5.2.2 server.  I can select the 'preferences' portlet option and bring up the Presto service/mashlet selection and configuration. Preview also works fine.  But there are problems when I attempt to save the service/mashlet configuration:

1) The 'cancel', 'save', 'delete' buttons are not clickable.  I found that there is a 1 pixel tall area that I can click on just below the buttons.  This seems to register the action invocation (cancel, save ...) properly.

2) When I invoke the 'save' action, the page breaks.  I get some JavaScript exception and the page no longer works.  The portlet tries to switch to normal mode and fails, the content for the portlet does not load but leaves the "throbber" up forever.  At this point the page is pretty much broken and requires a reload.  After reload, the JackBe portlets go back to the default state (no service/mashlet selected).

I am using a very new version of Liferay, 5.2.2.  I assume that this has not been tested with the JackBe Liferay connector.

Ciao,

Rick

0
Your rating: None
Karthic Thope's picture
User offline. Last seen 1 day 10 hours ago. Offline
Joined: 09/22/2008
Points: 61

Rick, the version we tested against was 4.4.2, so there could be a compatibilty issue here like you mentioned.  Issue #1 you mentioned is a known bug, has been addressed in a more recent version of Presto.

Can you check liferays logs for any error stack? One problem we often run into is the size limitation of  portlet preference table.  You can easily workaround that by increasing the preference column size.

Here is some relevant information from Presto documentation:

"If needed, update the amount of space allowed for portal preferences to a minimum of 2,000 characters.

Preferences for Presto services and mashlets frequently require more space to support input parameters and other properties.

This may require configuration changes in your portal application or changes to the SQL commands for the persistent store for your portal application.
In JetSpeed, for example, you set the maximizeOnEdit property to true in the pipelines.xml configuration file. You also change the preference length with the PREFS_PROPERTY_VALUE.PROPERTY_VALUE property."

 

souldad57's picture
User offline. Last seen 1 year 10 weeks ago. Offline
Joined: 04/24/2009
Points: 20

 Hey Karthic,

I have been unable to identify a suitable property for setting the portlet preferences size in the Liferay properties file.  Any suggestions?

Also, you mentioned a newer version of the presto/liferay connector.  Would it be possible for me to try that?

TIA

Ciao,

Rick

Karthic Thope's picture
User offline. Last seen 1 day 10 hours ago. Offline
Joined: 09/22/2008
Points: 61

Rick, portlet preference column size needs to be updated at the DB level. I think, Liferay now uses MySQL as the default backend DB and you essentially need to increase the size of value column that stores portlet preferences.  This may not be the problem for you, we didn't run into this with the version of Liferay we tested against. Liferay logs will us help identify the exact problem, so any logs you can provide us will be very helpful. 

Karthic Thope's picture
User offline. Last seen 1 day 10 hours ago. Offline
Joined: 09/22/2008
Points: 61

We tested the portal connector against the latest version of Liferay Portal 5.2.2 and here are 2 simple changes to get it working.

1. Update the <webapps dir>/presto-liferay/WEB-INF/liferay-portlet.xml to add the following inside both the portlet configurations.

<ajaxable>false</ajaxable>

2. Liferay 5.2.2 uses jQuery javascript library 1.2.6. This version of jQuery has a compatibility issue with PrototypeJS library and that causes problems in the Presto portal connector. To workaround, you need to make a 1-line change in <Liferay webapp dir>/html/js/jquery/jquery.js, line 1135. Replace the existing line with the following:

if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )

Hope that helps.