Foren

Create JSONWebService without using service builder

Raghu k, geändert vor 10 Jahren.

Create JSONWebService without using service builder

Junior Member Beiträge: 58 Beitrittsdatum: 10.08.12 Neueste Beiträge
Hi All,
I have one method which does some job. I want to expose this as a JSON web service. When I googled all I found is creating JSON web services with Service builder. But to use service builder we should define an entity in service.xml and later we need to create methods in XXX-serviceImple class. But I dont have any requirement of creating a table.
How can i achieve this?
Raghu k, geändert vor 10 Jahren.

RE: Create JSONWebService without using service builder

Junior Member Beiträge: 58 Beitrittsdatum: 10.08.12 Neueste Beiträge
I tried something like this but this service is not available or registered under http://localhost:8080/api/jsonws
1. Created a portlet and written a class with
package com.raghu.portal.agcoservices;

import com.liferay.portal.kernel.jsonwebservice.JSONWebService;

@JSONWebService
public class RaghuSservices {

public String sayHello(String name){
return " Hello "+ name;
}
}


2. Modefied web.xml by adding below entries. In this link Registering Plugin JSON Web Services I found we need to change web.xml like this.

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<filter>
            <filter-name>Secure JSON Web Service Servlet Filter</filter-name>
            <filter-class>com.liferay.portal.kernel.servlet.PortalClassLoaderFilter</filter-class>
            <init-param>
                <param-name>filter-class</param-name>
                <param-value>com.liferay.portal.servlet.filters.secure.SecureFilter</param-value>
            </init-param>
            <init-param>
                <param-name>basic_auth</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>portal_property_prefix</param-name>
                <param-value>jsonws.servlet.</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>Secure JSON Web Service Servlet Filter</filter-name>
            <url-pattern>/api/jsonws/*</url-pattern>
        </filter-mapping>

        <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.jsonwebservice.JSONWebServiceServlet</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>
</web-app>

3. Deployed my portlet and checked it under */api/jsonws. I didnot find any entry for my portlet.
sravan kumar, geändert vor 10 Jahren.

RE: Create JSONWebService without using service builder

Junior Member Beiträge: 78 Beitrittsdatum: 19.02.13 Neueste Beiträge
Hi,

I tried the same am getting the same.i think you can better to use restful webservices instead of JSONWebservices.


Thanks,
Sravan Kumar K
Harsh Kanakhara, geändert vor 6 Jahren.

RE: Create JSONWebService without using service builder

Junior Member Beiträge: 74 Beitrittsdatum: 06.04.17 Neueste Beiträge
Hi Raghu,

Did you find any solution ?

Regards,
Harsh Kanakhara.
thumbnail
Neil Jin, geändert vor 6 Jahren.

RE: Create JSONWebService without using service builder

New Member Beiträge: 17 Beitrittsdatum: 24.03.11 Neueste Beiträge
ServiceBuilder is used for building a service. Database table is not required. Just create the entity without columns and localservice.