<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Cannot invoke service methods in MVC portlet class</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=112181925" />
  <subtitle>Cannot invoke service methods in MVC portlet class</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=112181925</id>
  <updated>2026-04-04T04:18:38Z</updated>
  <dc:date>2026-04-04T04:18:38Z</dc:date>
  <entry>
    <title>RE: Cannot invoke service methods in MVC portlet class</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112537306" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112537306</id>
    <updated>2019-03-01T16:54:08Z</updated>
    <published>2019-03-01T16:54:08Z</published>
    <summary type="html">Neither of those, you do it in place of the @ServiceReference annotation.&lt;br /&gt;&lt;br /&gt;@ServiceReference is used only within service builder code, it is not an OSGi annotation.&lt;br /&gt;&lt;br /&gt;You need to use the basic @Reference annotation to have OSGi inject the reference into your class at runtime.</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2019-03-01T16:54:08Z</dc:date>
  </entry>
  <entry>
    <title>RE: Cannot invoke service methods in MVC portlet class</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112536641" />
    <author>
      <name>Kevin Neibarger</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112536641</id>
    <updated>2019-03-01T16:53:47Z</updated>
    <published>2019-03-01T16:53:47Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;build.gradle in&amp;nbsp;&lt;strong&gt;TestServiceBuilder-web&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;dependencies {

compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "3.0.0"

compileOnly group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.6.0"

compileOnly group: "com.liferay.portal", name: "com.liferay.util.java", version: "3.0.0"

compileOnly group: "javax.portlet", name: "portlet-api", version: "2.0"

compileOnly group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"

compileOnly group: "jstl", name: "jstl", version: "1.2"

compileOnly group: "org.osgi", name: "osgi.cmpn", version: "6.0.0"

compileOnly project(':TestServiceBuilder-api')

compileOnly project(':TestServiceBuilder-service')

}&lt;/code&gt;&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Kevin Neibarger</dc:creator>
    <dc:date>2019-03-01T16:53:47Z</dc:date>
  </entry>
  <entry>
    <title>RE: Cannot invoke service methods in MVC portlet class</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112535971" />
    <author>
      <name>Kevin Neibarger</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112535971</id>
    <updated>2019-03-01T16:48:05Z</updated>
    <published>2019-03-01T16:48:05Z</published>
    <summary type="html">Where would I do that? Is that through the bnd.bnd file or build.gradle?</summary>
    <dc:creator>Kevin Neibarger</dc:creator>
    <dc:date>2019-03-01T16:48:05Z</dc:date>
  </entry>
  <entry>
    <title>RE: Cannot invoke service methods in MVC portlet class</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112189936" />
    <author>
      <name>Ketan Savaliya</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112189936</id>
    <updated>2019-01-31T09:14:36Z</updated>
    <published>2019-01-31T09:14:36Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi Kevin,&lt;br&gt;&lt;br&gt;Have you given &lt;strong&gt;TestServiceBuilder-api&amp;nbsp;&lt;/strong&gt;module dependency to your&amp;nbsp;&lt;strong&gt;TestServiceBuilder-web module&amp;nbsp; ?&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;br&gt;If no then you need give it.&lt;br&gt;&lt;br&gt;If yes then you can use your service class referance like below.&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;@Reference
    private UserLocalService _userLocalService;&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;​​​​​​​HTH!!&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Ketan Savaliya</dc:creator>
    <dc:date>2019-01-31T09:14:36Z</dc:date>
  </entry>
  <entry>
    <title>Cannot invoke service methods in MVC portlet class</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112181924" />
    <author>
      <name>Kevin Neibarger</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112181924</id>
    <updated>2019-01-30T14:27:16Z</updated>
    <published>2019-01-30T14:27:16Z</published>
    <summary type="html">So, I&amp;#39;m facing an issue that is probably most likely with configuration and architecture of the service-builder. Essentially, I&amp;#39;m creating a service-builder &amp;#34;Liferay Module Project&amp;#34; and it creates two sub-projects, the *-api and *-service gradle projects. &lt;br /&gt;&lt;br /&gt;Within that same folder I&amp;#39;m creating another &amp;#34;Liferay Module Project&amp;#34;, this time it&amp;#39;s a mvc-portlet gradle project. From all the tutorials I&amp;#39;ve put together a main gradle build script that cleans, compiles, builds and deploys 3 osgi module JARs.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TestServiceBuilder&lt;br /&gt;          TestServiceBuilder-api&lt;br /&gt;          TestServiceBuilder-service&lt;br /&gt;          TestServiceBuilder-web&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;When I build the 3 JARs and deploy them the portlet appears and loads fine into portal page. I am having issues calling a method on the FooLocalService from a Java class that extends MVCPortlet, the service Object is null everytime. I&amp;#39;m using &lt;strong&gt;ServiceReference&lt;/strong&gt; annotation to get an instance of the class. Can anyone tell me why the below throws a NullPointerException?? Is there some configuration I&amp;#39;m missing?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;public class TestServiceBuilderWebPortlet extends MVCPortlet {&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;span style="color: #ff0000"&gt;@ServiceReference(type = com.test.service.builder.service.FooLocalService.class)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: #ff0000"&gt;protected static com.test.service.builder.service.FooLocalService _fooLocalService;&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;@Override&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;public void render(RenderRequest renderRequest,&lt;/strong&gt;&lt;strong&gt;        RenderResponse renderResponse) throws PortletException, IOException {&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;    try {&lt;/strong&gt;&lt;strong&gt;       &lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="color: #ff0000"&gt;&lt;strong&gt;System.out.println(&amp;#34;\n -- TestServiceBuilderWebPortlet:render - Getting Foo service, is it null? &amp;#34;&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;strong&gt;+ (_fooLocalService == null ? &amp;#34;YES&amp;#34; : &amp;#34;NO&amp;#34;) + &amp;#34; -- \n&amp;#34;);&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;strong&gt;    &lt;br /&gt;&lt;br /&gt;​​​​​​​List&amp;lt;Foo&amp;gt; fooList = _fooLocalService.getAllFoo();&lt;br /&gt;​​​​​​​&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;    } catch (Exception e) {&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;        throw new PortletException(e);&lt;/strong&gt;&lt;strong&gt;    }&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;    super.render(renderRequest, renderResponse);&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;</summary>
    <dc:creator>Kevin Neibarger</dc:creator>
    <dc:date>2019-01-30T14:27:16Z</dc:date>
  </entry>
</feed>
