Thursday, December 18, 2014

Liferay Custom webservice client

As we are migrating to Liferay from WebSphere portal. I was testing if I can create a webservice client and access the remote SOAP bases webservices.

So, I created my Service builder portlet project ( many links on Google will help you to create one ! ), and then deployed on my local liferay server and tried to check if the service is running fine.

I was using http://localhost:8080/api/jsonws/ which is the utility provided by Liferay to check the services. But that was causing issues related to classloader. Like below,
 


10:43:25,081 ERROR [http-bio-8080-exec-4][JSONWebServiceServiceAction:87] interface com.sun.xml.ws.developer.WSBindingProvider is not visible from class loader



After spending few days on this I thought of not to test it from this utility and rather directly call that service from my portlet. And Voila ! it worked. I could connect to my remote webservice through the client code which was not working on that /jsonws utility.

So, I think there are some issues with that utility. As I understand that utility is part of Portal classloader/codebase and my custom code is loaded through separate class loader. And this might have been causing all problems.

So, best avoid using that utility and check your code from your portlet itself.

More on this on Liferay Forum... (See my response ! ).

https://www.liferay.com/community/forums/-/message_boards/message/39093968



Hope this helps.
Hardik

No comments: