Basics of WSRP #

Quoting for the specification itself:

The Web Services for Remote Portlets specification defines a web service interface for accessing and interacting with interactive presentation-oriented web services.

But... since we have Web Services and we have Portlets, why do we need WSRP then?

Well, it is true that you can provide platform-independent access to our services via Web Services. However, to allow the user access to those services you would need to build a presentation logic and user interface. And sometimes, that can take many effort and time, to develop, compile and deploy the presentation to the end-user.

And that is the key in the WSRP definition: presentation-oriented web services.

WSRP specification is about going much further and allow portals to display remote portlets inside their pages, as if locallly deployed, without requiring any additional programming by the developers.

So you will be providing access to your business logic but also providing the user interface!

In order to do so, WSRP define the following actors:

  • Producer: A Web Service that offers one or more portlets and is described using a WSDL document.
  • Consumer: The Web Service Client that gather all the components allowing for the presentation to the end user.
  • Portlets
  • End Users

WSRP in Liferay #

Liferay supports WSRP 2.0 specification and can act as a WSRP Producer and Consumer.

From the image above, Liferay portal server can be used as a WSRP Producer, hosting portlets that will be consumed by other Liferay portal servers acting as WSRP Consumers.

So, with WSRP you are delivering both, data and presentation in a way that decouples deployment and delivery of your portlets.

And with Liferay you don't need any extra development in order to start enjoying WSRP advantages just deploy the WSRP plugin porltlet and start using it!

Deploy WSRP plugin #

As you know, there are different ways of deploying a plugin in the portal, we are going to deploy the WSRP plugin through the UI, so go to the 'Control Panel' and 'Plugins Installation' and click on 'Install more portlet':

Look for WSRP and install it:

Once installed, refresh your page and you will be able to see it available in the 'Control Panel':

And as easy as that you can just start creating producers and consumers for your portal.

Liferay Producer #

Let's go ahead and create a producer. Go to the 'Producers' tab in the WSRP portlet and click the 'Add Producer' button:

Now, you can see here a list of portlets that your producer may use. Let's stick pick the 'Currency Converter' and, of course, the 'Hello World':

Once you click the Save button the portal will have generated a WSDL to define your producer. To be able to see the URL click 'Action' -> 'Edit':

Copying that URL to the browser you will see the WSDL definition for your producer.

Liferay Consumer #

For the purposes of this exercise we are going to use the same Liferay installation as producer and consumer, but we could go with this WSDL definition to the Liferay server acting as consumer and define the consumer pointing to another server.

For now, let's go to the 'Consumers' tab and click the 'Add Consumer' button:

Give it a name, add the URL to the WSDL for the producer and click 'Save':

Lastly, we need to define the portlets that the end-user will be able to use from this consumer. To do so, go to the list of consumers and in 'Actions' click 'Manage Portlets':

Then, add the two portlets that this producer is exposing to the consumer, so that the end-user can used them in the portal:

And.... done!!

Accessing Remote Portlets #

Now, let's use the remote portlets from the portal. Go back to your community and click the 'Add Application' in the dock bar, 'More...' and go to the WSRP category:

Add them to your page:

There you go! You are consuming 'remote' portlets with Liferay WSRP implementation.

Custom Remote Portlets #

You can make your custom developed portlets remotely accessible by setting to 'true' the <remotable> tag in your liferay-portlet.xml:

<liferay-portlet-app>
	
	<portlet>
		<portlet-name>RemotePortletTest</portlet-name>
		<remoteable>true</remoteable>
….......

By doing this your custom portlet will appear in the list of portlets available when creating a WSRP producer, so you can expose all your custom developed portlets to be used by consumers.

Portlets Modes #

All three standard portlet modes (VIEW, EDIT, HELP) are supported by Liferay's implementation of WSRP.

Since the EDIT mode requires the user to be authenticated, you will need to enable request header authentication in your portal, specially on the producer for the credentials to be propagated through HTTP headers.

This is done by adding a reference to a Liferay class com.liferay.portal.security.auth.RequestHeaderAutoLogin to the property auto.login.hooks in your portal-ext.properties, (to be used with another security product such as Tivoli Access Manager, etc.)

For fine-tune your HTTP settings have a look at the HTTP section in the portal.properties and system.properties

13 Attachments
45965 Views
Average (10 Votes)
The average rating is 5.0 stars out of 5.
Comments
Threaded Replies Author Date
Hi Ruth Coca, Really useful explanation on the... sasi Kanth November 4, 2010 4:52 AM
Wow: nice article, Ruth. Why don't you create a... Juan Fernández November 4, 2010 5:53 AM
Nice article. I would have to try this Sandeep Nair November 5, 2010 10:43 PM
Hello Ruth, I was able to do the WSRP setup as... Andy Verbunt December 29, 2010 7:16 AM
This posts looks very informative. You may need... Kiran Kanaparthi January 21, 2011 6:44 PM
If using LR as a WSRP consumer of a non-LR WSRP... Amit Aggarwal January 10, 2011 7:56 PM
We used this approach for communicating from LR... Kiran Kanaparthi January 21, 2011 6:48 PM
as well as remoteable=true, it also requires... David O'Meara February 17, 2011 8:29 PM
We have remote portlets working just fine, but... Tom Redman February 12, 2013 4:59 AM
Maybe I am missing something here but looking... Jelmer Kuperus February 21, 2011 9:48 AM
An excellent yet quite informative and... Sushil Mayengbam June 23, 2011 12:03 AM
Hey, Has anyone run into the problem of not... Adi Bart September 21, 2011 3:49 PM
Seems to happen to me as well, The WSDL URL... Chris Bacigalupo July 16, 2013 1:35 PM
I had the same problem, because of a wrong... Gerhard Karl January 17, 2014 1:35 AM
This info is all very well, but doesn't help if... Matt Quartermain November 11, 2011 3:17 AM
Hi I've followed the initial three steps and... Rohit Shirodkar March 8, 2012 7:20 PM
Hi all, I wish to use LR as WSRP 2.0 producer... Paolino Gini July 31, 2012 7:24 AM
Simple, Straight-Forward and Concise. Thanks... Ashok Kumar June 10, 2013 9:51 PM
This is really helpful article. I have... Sachin Dhus June 19, 2014 5:53 AM
Any idea - why this must be happening? Nilesh Gundecha June 24, 2014 2:44 AM

Hi Ruth Coca,

Really useful explanation on the WSRP porltet.

I will try and enable for my custom portlet also.

Thanx
Posted on 11/4/10 4:52 AM.
Wow: nice article, Ruth. Why don't you create a blog entry about this so that more people can read about this?
Keep the good job coming! emoticon
Posted on 11/4/10 5:53 AM.
Nice article. I would have to try this
Posted on 11/5/10 10:43 PM.
Hello Ruth,

I was able to do the WSRP setup as described in your post (although I'm using LR 6.0.5).

The portlet shows the text "Welcome to Liferay ..." just as in your screenshot. However, I'd like to have the actual content which should be something like "Hello World".

Did I forget something?

Thanks,
Andy.
Posted on 12/29/10 7:16 AM.
If using LR as a WSRP consumer of a non-LR WSRP producer, what methods of identity propagation does it support? Does it automatically send the user's screen name or id in a HTTP header? if so, which header?
Posted on 1/10/11 7:56 PM.
This posts looks very informative.
You may need to change the DTD to Liferay6 in both liferay-
portlet.xml, and liferay-display.xml.
Like to be able to add remoteable tag.

<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.0.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_0_0.dtd">
and
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.0.0//EN" "http://www.liferay.com/dtd/liferay-display_6_0_0.dtd"> respectively.
Posted on 1/21/11 6:44 PM in reply to Andy Verbunt.
We used this approach for communicating from LR consumer to other Producer, used renderRequest.getUserPrincipal() which sends the user info for identification.
Posted on 1/21/11 6:48 PM in reply to Amit Aggarwal.
as well as remoteable=true, it also requires instanceable=true (or atleast not false)
Currently testing event support with LR6SP1 but no luck as yet...
Posted on 2/17/11 8:29 PM.
Maybe I am missing something here but looking at the code it seems that it would be unwise to configure RequestHeaderAutoLogin
It basically checks if a LIFERAY_SCREEN_NAME header is present in the request and if it is automatically logs the user in for that screen name. No credentials are checked
It would be really easy for a malicious user to craft a request that would give full access to someone's account
Posted on 2/21/11 9:48 AM.
An excellent yet quite informative and illustrative article!
Posted on 6/23/11 12:03 AM.
Hey,

Has anyone run into the problem of not being able to set up the consumer. I tried these steps but I get the following error message.

URL does not point to a valid WSRP producer.

Im using Liferay 6.0
Any pointers much appreciated!
Posted on 9/21/11 3:49 PM in reply to Sushil Mayengbam.
This info is all very well, but doesn't help if you want to install a producer that you want to use on another machine.

Logging on via "localhost" will generate a URL (as indicated above) with "localhost" in it. So when you try to access this producer as a consumer on another machine, nothing you enter as a URL will allow to to connect to it.

What you have to do is log in under the name of your machine's proxy: e.g. "http://initrode55:8080" and then the URL will look like:
http://initrode:8080/wsrp-portlet/wsdl/11019
or whatever.

Also note that this is fine using Liferay 6.0.6 running Tomcat, but when I tried it on Liferay 6.0,5 with JBoss in it, you can *only* log in via localhost, which is inadequate behaviour.

Also note that Liferay 6 seems to support WSRP v 2 only. In theory, you can access it as v 1.1 (e.g. for SharePoint, which is still only v 1.1 compatible), but we have been unable to get this to work.

This post also fails to provide sufficient details as to what the liferay-portlet.xml needs to be shaped like. When importing a custom portlet which has not necessarily been developed using the Liferay IDE (we don't currently use that tool), you have to craft that file from scratch.

Here's an example of what the liferay-portlet.xml should look like (we think):

<liferay-portlet-app>
<portlet>
<portlet-name>(Portlet name)</portlet-name>
<instanceable>true</instanceable>
<remoteable>true</rem­oteable>
<header-portlet-css>/css/(css-filename).css</header-portlet-css>
<header-po­rtlet-javascript>/js/(JavaScript file name).js</header-portlet-javascript>
</portlet>
<role-mapper>
<role-name>admin­istrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role­-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-ma­pper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<r­ole-link>User</role-link>
</role-mapper>
</liferay-portlet-app>

Also note the "role-mapper" sections look as though they ought to correlate with this, which is supposed (we think) to happen in the portlet.xml:


<security-role-ref>
<role-name>administrator</role-name>
<­/security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</­security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
­ </security-role-ref>
<security-role-ref>
<role-name>user</role-name>
<­/security-role-ref>

... in the <portlet> element.

However, take this with suspicion, as we have still not been able to get this to work with SharePoint.
Posted on 11/11/11 3:17 AM.
Hi
I've followed the initial three steps and found that after downloading the wsrp-portlet-6.0.6.1.war from the Plugins installation screen while hot deployment,
The tomcat isnt able to open the zip file. I'm not sure why this error is coming up. It tries to unzip file for 9 times and then adds WSRP portlet to black list. Any help would be greatly appreciated.
Please refer the logs below:


at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
03:00:54,218 INFO [PortletHotDeployListener:220] Registering portlets for opens
ocial-portlet
03:00:54,421 WARN [SAXReaderImpl:429] XSD validation is diasabled because org.a
pache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apac
he.xerces.xni.parser.XMLParserConfiguration
03:00:54,437 WARN [SAXReaderImpl:429] XSD validation is diasabled because org.a
pache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apac
he.xerces.xni.parser.XMLParserConfiguration
03:00:54,890 WARN [SAXReaderImpl:429] XSD validation is diasabled because org.a
pache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apac
he.xerces.xni.parser.XMLParserConfiguration
03:00:55,015 WARN [SAXReaderImpl:429] XSD validation is diasabled because org.a
pache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apac
he.xerces.xni.parser.XMLParserConfiguration
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/portlet.properties
03:00:55,0­31 INFO [PortletHotDeployListener:374] 2 portlets for opensocial-port
let are available for use
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties
03:00:55,7­18 INFO [DialectDetector:69] Determining dialect for MySQL 5
03:00:55,718 INFO [DialectDetector:49] Using dialect org.hibernate.dialect.MySQ
LDialect
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties
03:01:02,0­00 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 3.
03:01:02,000 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
Mar 9, 2012 3:01:08 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory sevencogs-hook
03:01:09,562 INFO [HotDeployEvent:95] Plugin sevencogs-hook requires google-map
s-portlet, kaleo-web, mail-portlet, sevencogs-mobile-theme, sevencogs-theme, soc
ial-networking-portlet, web-form-portlet
03:01:09,562 INFO [HotDeployUtil:137] Queueing sevencogs-hook for deploy becaus
e it is missing sevencogs-mobile-theme, sevencogs-theme, social-networking-portl
et, web-form-portlet
Mar 9, 2012 3:01:09 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory sevencogs-mobile-theme
03:01:10,062 INFO [ThemeHotDeployListener:78] Registering themes for sevencogs-
mobile-theme
03:01:10,703 INFO [ThemeHotDeployListener:89] 1 theme for sevencogs-mobile-them
e is available for use
03:01:10,703 INFO [HotDeployUtil:153] sevencogs-hook is still in queue because
it is missing sevencogs-theme, social-networking-portlet, web-form-portlet
Mar 9, 2012 3:01:10 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory sevencogs-theme
03:01:11,203 INFO [ThemeHotDeployListener:78] Registering themes for sevencogs-
theme
03:01:12,000 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 4.
03:01:12,000 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
03:01:12,484 INFO [ThemeHotDeployListener:89] 1 theme for sevencogs-theme is av
ailable for use
03:01:12,484 INFO [HotDeployUtil:153] sevencogs-hook is still in queue because
it is missing social-networking-portlet, web-form-portlet
Mar 9, 2012 3:01:12 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory social-networking-portlet
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.prope
rties
03:­01:13,812 INFO [DialectDetector:69] Determining dialect for MySQL 5
03:01:13,812 INFO [DialectDetector:49] Using dialect org.hibernate.dialect.MySQ
LDialect
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.prope
rties
Loa­ding file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.prope
rties
03:­01:14,578 INFO [HookHotDeployListener:394] Registering hook for social-netwo
rking-portlet
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/portal.proper
ties
03:0­1:14,750 INFO [HookHotDeployListener:649] Hook for social-networking-portle
t is available for use
03:01:14,781 INFO [PortletHotDeployListener:220] Registering portlets for socia
l-networking-portlet
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/portlet.prope
rties
03:­01:16,000 INFO [PortletHotDeployListener:374] 8 portlets for social-networki
ng-portlet are available for use
03:01:16,000 INFO [HotDeployUtil:153] sevencogs-hook is still in queue because
it is missing web-form-portlet
Mar 9, 2012 3:01:16 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory tunnel-web
Mar 9, 2012 3:01:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory web-form-portlet
03:01:19,750 INFO [PortletHotDeployListener:220] Registering portlets for web-f
orm-portlet
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/web-form-portlet/WEB-INF/classes/portlet.properties
03:01:20,765­ INFO [PortletHotDeployListener:369] 1 portlet for web-form-portlet
is available for use
03:01:20,765 INFO [HotDeployUtil:101] Deploying sevencogs-hook from queue
03:01:21,109 INFO [HookHotDeployListener:394] Registering hook for sevencogs-ho
ok
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/sevencogs-hook/WEB-INF/classes/portal.properties
03:01:21,265 INFO [HookHotDeployListener:649] Hook for sevencogs-hook is availa
ble for use
Mar 9, 2012 3:01:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory wsrp-portlet
03:01:22,000 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 5.
03:01:22,000 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties
03:01:24,296 INFO [PortletHotDeployListener:220] Registering portlets for wsrp-
portlet
03:01:24,562 INFO [PortletHotDeployListener:374] 2 portlets for wsrp-portlet ar
e available for use
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties
03:01:24,984 INFO [DialectDetector:69] Determining dialect for MySQL 5
03:01:24,984 INFO [DialectDetector:49] Using dialect org.hibernate.dialect.MySQ
LDialect
Loading file:/E:/liferay/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0
.6/tomca­t-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties
Mar 9, 2012 3:01:26 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Mar 9, 2012 3:01:28 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 9, 2012 3:01:28 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/1156 config=null
Mar 9, 2012 3:01:28 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 147003 ms
03:01:32,000 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 6.
03:01:32,000 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
03:01:42,000 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 7.
03:01:42,000 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
03:01:52,000 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 8.
03:01:52,000 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
03:02:02,000 INFO [AutoDeployDir:172] Processing wsrp-portlet-6.0.6.1.war. This
is attempt 9.
03:02:02,750 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.Aut
oDeployException: java.util.zip.ZipException: error in opening zip file
com.liferay.portal.kernel.deploy.auto.AutoDeployException: java.util.zip.ZipExce
ption: error in opening zip file
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:76)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isHookPl
ugin(BaseAu­toDeployListener.java:40)
at com.liferay.portal.deploy.auto.HookAutoDeployListener.deploy(HookAuto
DeployListe­ner.java:38)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoD
eployDir.ja­va:180)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(Aut
oDeployDir.­java:221)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeplo
yScanner.ja­va:49)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at com.liferay.portal.kernel.deploy.auto.BaseAutoDeployListener.isMatchi
ngFile(Base­AutoDeployListener.java:61)
... 5 more
03:02:02,750 INFO [AutoDeployDir:203] Add wsrp-portlet-6.0.6.1.war to the black
list
Posted on 3/8/12 7:20 PM.
Hi all,
I wish to use LR as WSRP 2.0 producer and the consume the portlet in another portlet framework non based on LR (eg. JBoss Portal), is it possible? how to do this?

thanks
Paolo
Posted on 7/31/12 7:24 AM in reply to Rohit Shirodkar.
We have remote portlets working just fine, but we have been unable to get *remote* events to work, they work from within the same container just fine. And from a cursor look over the web forums, it seems they just don't work, and there is really no interest in fixing them. Has anybody ever gotten WSRP events to work remotely?
Posted on 2/12/13 4:59 AM in reply to David O'Meara.
Simple, Straight-Forward and Concise. Thanks for the amazing post.
Posted on 6/10/13 9:51 PM.
Seems to happen to me as well, The WSDL URL contains valid WSDL content
Posted on 7/16/13 1:35 PM in reply to Adi Bart.
I had the same problem, because of a wrong proxy configuration.
Posted on 1/17/14 1:35 AM in reply to Adi Bart.
This is really helpful article. I have configured this & working properly on 'http' but not working on 'https'. Consumer is not able to understand wsdl which is pointing to producer which is running on SSL. Please share info.
Posted on 6/19/14 5:53 AM.
Any idea - why this must be happening?
Posted on 6/24/14 2:44 AM in reply to Sachin Dhus.