call service builder's service by portlet on liferay 7.4.2 ga3call service builder's service by portlet on liferay 7.4.2 ga3https://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=1211956312024-03-28T15:58:14Z2024-03-28T15:58:14ZRE: RE: call service builder's service by portlet on liferay 7.4.2 ga3Scarletake Bwihttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1211985502021-10-15T00:50:39Z2021-10-15T00:50:37Z<p>hi Olaf</p>
<p>thank you for your reply, thank you.</p>
<p>i am very sure CI-DS:CI-DS-api and CI-DS:CI-DS-service are both
deploied, if not, my portlet cannot deploy success due to
the build.gradle have note it.</p>
<p> </p>
<p>happy to know @Reference way is right, and also LocalServiceUtil not wrong.</p>
<p>persaonly, i prefeir LocalServiceUtil way more for 3 reasons.</p>
<p>1. all dao's naming principle will looks consistent</p>
<p>2. i don't like too many global variable, it's not, but looks like.</p>
<p>3. i have only use api in build.gradle if i choose localserviceutil. </p>
<p> </p>
<p>in this case, it is a service-builder connect to exteronal
database(oracle) with DataSourceProvider, all document and artical use @Reference. </p>
<p>i will keep tring, i will use <a
href="https://learn.liferay.com/dxp/latest/en/liferay-internals/fundamentals/using-the-gogo-shell/gogo-shell-commands.html">gogo-shell</a> to
trace it first.</p>
<p> </p>
<p>again, thank you. and if you have any suggestion, please please let
me know.</p>Scarletake Bwi2021-10-15T00:50:37ZRE: call service builder's service by portlet on liferay 7.4.2 ga3Olaf Kockhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1211974272021-10-14T08:35:24Z2021-10-14T08:35:22Z<p>If your portlet doesn't show in the list, you might want to check if
it deploys at all. Best to use <a
href="https://learn.liferay.com/dxp/latest/en/liferay-internals/fundamentals/using-the-gogo-shell/gogo-shell-commands.html">Gogo
Shell's diagnostic commands</a>, or just try to start it and
interpret the error message if one appears.</p>
<p>Note: The way you describe using @Reference is the correct one. It
hints at your service being unavailable - e.g. you'll also need to
deploy CI-DS:CI-DS-api and CI-DS:CI-DS-service to the runtime
environment. Otherwise the reference can't be resolved. Using the
static Util class hides this fact and defers to a runtime error
message, but it's preferable to get this error message before a
component is actually in use.</p>Olaf Kock2021-10-14T08:35:22Zcall service builder's service by portlet on liferay 7.4.2 ga3Scarletake Bwihttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1211956302021-10-18T19:26:46Z2021-10-13T09:55:24Z<p>hi </p>
<p>i am using liferay ce 7.4.2 ga3 with mysql and jdk8</p>
<p>all just downloaded from <a href="https://www.liferay.com/zh/downloads/thanks-for-downloading">downloads</a></p>
<p>all good, but when i try use my service(build by service-builder),</p>
<blockquote>
<p> public void testExtDB(ActionRequest actionRequest,
ActionResponse actionResponse)<br /> throws
PortletException, IOException {<br />
ItemLocalServiceUtil.testUtil();<br /> }</p></blockquote>
<p> </p>
<p>i got exception</p>
<blockquote>
<p>2021-10-13 06:08:27.953 ERROR
[http-nio-8080-exec-10][PortletServlet:119]
javax.portlet.PortletException: java.lang.NullPointerException<br />
javax.portlet.PortletException: java.lang.NullPointerException<br />
at
com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:205)
~[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:394)
~[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:88)
~[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:247)
~[portal-kernel.jar:?]<br /> at
com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:77)
~[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:50)
~[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:115)
~[portal-kernel.jar:?]<br /> at
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
~[servlet-api.jar:4.0.FR]<br /> at
org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
~[?:?]<br /> at
org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:63)
~[?:?]<br /> at
org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:120)
~[?:?]<br /> at
org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48)
~[?:?]<br /> at
com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java:569)
~[portal-impl.jar:?]<br /> at
com.liferay.portlet.internal.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:609)
~[portal-impl.jar:?]<br /> at
com.liferay.portlet.internal.InvokerPortletImpl.processAction(InvokerPortletImpl.java:286)
~[portal-impl.jar:?]<br /> at
com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.processAction(MonitoringInvokerPortlet.java:195)
~[?:?]<br /> at
com.liferay.portlet.internal.PortletContainerImpl._processAction(PortletContainerImpl.java:517)
~[portal-impl.jar:?]<br /> at
com.liferay.portlet.internal.PortletContainerImpl.lambda$processAction$0(PortletContainerImpl.java:148)
~[portal-impl.jar:?]<br /> at
com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:421)
[portal-impl.jar:?]<br /> at
com.liferay.portlet.internal.PortletContainerImpl.processAction(PortletContainerImpl.java:141)
[portal-impl.jar:?]<br /> at
com.liferay.portlet.SecurityPortletContainerWrapper.processAction(SecurityPortletContainerWrapper.java:92)
[portal-impl.jar:?]<br /> at
com.liferay.portlet.RestrictPortletContainerWrapper.processAction(RestrictPortletContainerWrapper.java:72)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.portlet.PortletContainerUtil.processAction(PortletContainerUtil.java:117)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:368)
[portal-impl.jar:?]<br /> at
com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:174)
[portal-impl.jar:?]<br /> at
com.liferay.portal.struts.PortalRequestProcessor._process(PortalRequestProcessor.java:401)
[portal-impl.jar:?]<br /> at
com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:151)
[portal-impl.jar:?]<br /> at
com.liferay.portal.internal.servlet.MainServlet.doPost(MainServlet.java:213)
[portal-impl.jar:?]<br /> at
javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
[servlet-api.jar:4.0.FR]<br /> at
com.liferay.portal.internal.servlet.MainServlet.service(MainServlet.java:632)
[portal-impl.jar:?]<br /> at
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
[servlet-api.jar:4.0.FR]<br /> at
com.liferay.shielded.container.internal.proxy.ServletWrapper.service(ServletWrapper.java:113)
[com.liferay.shielded.container.impl.jar:?]<br /> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
[catalina.jar:9.0.43]<br /> at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
[tomcat-websocket.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
[catalina.jar:9.0.43]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.remote.cors.internal.servlet.filter.PortalCORSServletFilter.processFilter(PortalCORSServletFilter.java:237)
[bundleFile:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.lockout.LockoutFilter.processFilter(LockoutFilter.java:58)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:339)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:183)
[bundleFile:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:104)
[portal-kernel.jar:?]<br /> at
com.liferay.shielded.container.internal.proxy.FilterWrapper.doFilter(FilterWrapper.java:79)
[com.liferay.shielded.container.impl.jar:?]<br /> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:710)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
[catalina.jar:9.0.43]<br /> at
com.liferay.friendly.url.internal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:455)
[bundleFile:?]<br /> at
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
[servlet-api.jar:4.0.FR]<br /> at
com.liferay.portal.servlet.ServletAdapter.service(ServletAdapter.java:99)
[portal-impl.jar:?]<br /> at
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
[servlet-api.jar:4.0.FR]<br /> at
com.liferay.shielded.container.internal.proxy.ServletWrapper.service(ServletWrapper.java:113)
[com.liferay.shielded.container.impl.jar:?]<br /> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
[catalina.jar:9.0.43]<br /> at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
[tomcat-websocket.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
[catalina.jar:9.0.43]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.remote.cors.internal.servlet.filter.PortalCORSServletFilter.processFilter(PortalCORSServletFilter.java:237)
[bundleFile:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:368)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.lockout.LockoutFilter.processFilter(LockoutFilter.java:58)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:339)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:265)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:245)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:183)
[bundleFile:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
[portal-kernel.jar:?]<br /> at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
[urlrewritefilter.jar:4.0.4]<br /> at
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
[urlrewritefilter.jar:4.0.4]<br /> at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
[urlrewritefilter.jar:4.0.4]<br /> at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
[urlrewritefilter.jar:4.0.4]<br /> at
com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
[portal-impl.jar:?]<br /> at
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
[portal-kernel.jar:?]<br /> at
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:104)
[portal-kernel.jar:?]<br /> at
com.liferay.shielded.container.internal.proxy.FilterWrapper.doFilter(FilterWrapper.java:79)
[com.liferay.shielded.container.impl.jar:?]<br /> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
[catalina.jar:9.0.43]<br /> at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
[catalina.jar:9.0.43]<br /> at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
[tomcat-coyote.jar:9.0.43]<br /> at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
[tomcat-coyote.jar:9.0.43]<br /> at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887)
[tomcat-coyote.jar:9.0.43]<br /> at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684)
[tomcat-coyote.jar:9.0.43]<br /> at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
[tomcat-coyote.jar:9.0.43]<br /> at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_271]<br /> at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_271]<br /> at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[tomcat-util.jar:9.0.43]<br /> at
java.lang.Thread.run(Thread.java:748) [?:1.8.0_271]<br /> Caused by:
java.lang.NullPointerException<br /> at
com.raritan.ci.ds.plm.service.ItemLocalServiceUtil.testUtil(ItemLocalServiceUtil.java:278)
~[bundleFile:?]<br /> at
com.raritan.ci.amd.portlet.AdminMasterDataPortlet.testExtDB(AdminMasterDataPortlet.java:97)
~[bundleFile:?]<br /> at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_271]<br /> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_271]<br /> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_271]<br /> at
java.lang.reflect.Method.invoke(Method.java:498)
~[?:1.8.0_271]<br /> at
com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:183)
~[portal-kernel.jar:?]<br /> ... 158 more<br /> </p></blockquote>
<p> </p>
<p>i try use annotation </p>
<blockquote>
<p> @Reference<br /> ItemLocalService _itemLocalService;</p></blockquote>
<p>and </p>
<blockquote>
<p> public void testExtDB(ActionRequest actionRequest,
ActionResponse actionResponse)<br /> throws
PortletException, IOException {<br />
_itemLocalService.testUtil();<br /> }</p></blockquote>
<p> </p>
<p>my portlet won't show in Weiget list.</p>
<p>and if i remove the annotation "@Reference", i got same exception.</p>
<p>my build.gradle of my portlet is</p>
<blockquote>
<p>dependencies {<br /> compileOnly group:
"com.liferay.portal", name: "release.portal.api"</p>
<p> cssBuilder group: "com.liferay", name:
"com.liferay.css.builder", version: "3.0.2"<br />
<br /> compileOnly
project(":modules:CI-DS:CI-DS-api")<br /> compileOnly
project(":modules:CI-DS:CI-DS-service")<br /> }</p></blockquote>
<p> </p>
<p>i want to know,</p>
<p>1. how to make portlet visable when using @Reference, what's i doing wrong?</p>
<p>2. i always use LocalServiceUtil to use my service(service builder)
since 6.2, what's different between LocalServiceUtil and annotation?
when i should use one and when i should use the other?</p>
<p>3. do i need add message in guild.gradle's dependencies? like </p>
<blockquote>
<p>compileOnly group: "org.osgi", name:"org.osgi.service.component.annotations"</p></blockquote>
<p>my gradle info is</p>
<blockquote>
<p>Working Directory:
C:\LiferayWorkspacewithDevStudio-20211013\liferay-workspace\modules\CI-DS-PLM\CI-DS-PLM-service<br />
Gradle user home: C:\Users\vic\.gradle<br /> Gradle Distribution:
Gradle wrapper from target build<br /> Gradle Version: 6.6.1<br />
Java Home: C:\Program Files\Java\jdk1.8.0_271<br /> JVM Arguments:
None<br /> Program Arguments: None<br /> Build Scans Enabled:
fa