To build a service from a service.xml file, you can use Liferay IDE, Liferay Developer Studio, or use a terminal window. Next, you’ll generate the service for the example Event Listing portlet project you’ve been developing throughout this chapter. The project resides in the portlets/event-listing-portlet folder of your Plugins SDK.

Using Liferay IDE or Developer Studio: From the Package Explorer, open the service.xml file from your event-listing-portlet/docroot/WEB-INF folder. By default, the file opens up in the Service Builder Editor. Make sure you are in Overview mode. Then click the Build Services button near the top-right corner of the view. The Build Services button has an image of a document with the numerical sequence 0101 in front of it.

Make sure to click the Build Services button and not the Build WSDD button that appears next to it. Building the WSDDs won’t hurt anything, but you’ll generate files for the remote service instead of the local one. For information about WSDDs (web service deployment descriptors), please refer to the section on remote Liferay services later in this chapter.

service-xml-overview.png

Figure 4.4: The Overview mode in the editor provides a nested outline which you can expand, a form for editing basic Service Builder attributes, and buttons for building services or building web service deployment descriptors.

After running Service Builder, the Plugins SDK prints messages listing the generated files and a message stating BUILD SUCCESSFUL. More information about these files appears below.

Using the terminal: Open a terminal window, navigate to your portlets/event-listing-project-portlet directory and enter this command:

ant build-service

When the service has been successfully generated, a BUILD SUCCESSFUL message appears in your terminal window. You should also see that a large number of files have been generated in your project. These files include a model layer, service layer, and persistence layer. Don’t worry about the number of generated files–developers never have to customize more than three of them. We’ll examine the files Service Builder generated for your Event entity after we add some custom service methods to EventLocalServiceImpl and call them from EventPortlet.

Now let’s add some local service methods to EventLocalServiceImpl and learn how to call them. Later in this chapter, we’ll add some remote service methods to EventServiceImpl and learn how to call those, too.

0 (0 Votes)
Defining Your Object-Relational Map Previous