Download plugin portlet from following URL
Following is the step by step description of generating a custom liferay
plugin service and exposing it as JSON Web Service.
STEP: 1 Create a liferay plugin project and create new service
Here is the sample service.xml
<?xml version="1.0"
encoding="UTF-8"?>
<!DOCTYPE service-builder
PUBLIC "-//Liferay//DTD
Service Builder 6.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
<service-builder package-path="com.meera.json">
<author>meera</author>
<namespace>json</namespace>
<entity name="Student"
local-service="true" remote-service="true">
<column name="studentId"
type="long" primary="true"
/>
<column name="studentName"
type="String" />
</entity>
</service-builder>
|
Make sure remote-service=”true” in
entity tag declaration.
STEP: 2 Build the service.
STEP: 3 write you custom method
implementation in StudentServiceImpl.java
public
com.meera.json.model.Student getStudent(long studentId)
throws
com.liferay.portal.kernel.exception.PortalException,
com.liferay.portal.kernel.exception.SystemException
{
return
StudentLocalServiceUtil.getStudent(studentId);
}
|
Note: Here I am using existed method only don’t confuse.
You can write your custom method implementation instead of my method.
STEP: 4 build the service using
command ant build-service from your eclipse ant view
STEP: 5 Add the following <servlet>
and <servlet-mapping> Entries to portlet’s web.xml
file
<servlet>
<servlet-name>JSON Web
Service Servlet</servlet-name>
<servlet-class>com.liferay.portal.kernel.servlet.PortalClassLoaderServlet</servlet-class>
<init-param>
<param-name>servlet-class</param-name>
<param-value>com.liferay.portal.servlet.JSONServlet</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JSON Web
Service Servlet</servlet-name>
<url-pattern>/api/jsonws/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>JSON Web
Service Servlet</servlet-name>
<url-pattern>/api/secure/jsonws/*</url-pattern>
</servlet-mapping>
|
STEP: 6 deploy the portlet using ant
deploy command from eclipse ant view
STEP: 7 to access your json web services enter the following url –
Note: if you access above url you will get blank page in browser but
don’t worry. Make sure no exception will be occurred in console. Go through
following url
Following is full URL to get json data
according to my example
http://localhost:8080/LiferayCustomJsonWebService-portlet/api/jsonws/?serviceClassName=com.meera.json.service.StudentServiceUtil&serviceMethodName=getStudent&serviceParameters=[studentId]&studentId=1
|
Note:
Change port number according
to your environment and change portlet-context
name according to your portlet context name