我已经为 login.jsp 创建了登录片段,它工作得很好。
现在我需要添加一些代码来从自定义表中获取一些数据,所以我使用 scriptlet 添加了 XYZLocalServiceUtil 调用。
现在服务调用正在工作,但问题是当我部署片段挂钩时,它会给出以下错误并且 portlet 变得不可用,但仅在部署后第一次出现。
当我刷新页面时,下次它可以正常工作而没有任何错误。我不确定为什么它第一次无法获得以下依赖。
07:17:00,237 错误 [http-nio-9080-exec-9][PortletRequestDispatcherImpl:265] 无法调度请求:javax.el.ELException:未找到提供程序 com.sun.el.ExpressionFactoryImpl 07:17:00,242 错误 [http-nio-9080-exec-9][PortletServlet:111] javax.portlet.PortletException: org.apache.jasper.JasperException: javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl未找到 javax.portlet.PortletException:org.apache.jasper.JasperException:javax.el.ELException:未找到提供程序 com.sun.el.ExpressionFactoryImpl 在 com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:267) 在 com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:102) 在 com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.include(MVCPortlet.java:594) 在 com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.include(MVCPortlet.java:610) 在 com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.doView(MVCPortlet.java:160) 在 com.liferay.portal.kernel.portlet.LiferayPortlet.doDispatch(LiferayPortlet.java:303) 在 com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.doDispatch(MVCPortlet.java:497) 在 javax.portlet.GenericPortlet.render(GenericPortlet.java:262) 在 com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.render(MVCPortlet.java:317) 在 com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103) 在 com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:57) 在 com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100) 在 com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64) 在 com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:107) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153) 在 org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62) 在 org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:117) 在 org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48) 在 com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:530) 在 com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:605) 在 com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:391) 在 com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.render(MonitoringInvokerPortlet.java:265) 在 org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1580) 在 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:64) 在 com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78) 在 com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53) 在 com.liferay.portlet.PortletContainerImpl._render(PortletContainerImpl.java:707) 在 com.liferay.portlet.PortletContainerImpl.render(PortletContainerImpl.java:162) 在 com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:133) 在 com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:133) ...
我尝试在 gradle 文件中添加以下依赖项,但没有运气。编译组:'org.glassfish',名称:'javax.el',版本:'3.0.0'
我正在使用“liferay-ce-portal-7.0-ga4”,如果有人遇到类似问题,请提出解决方法。
谢谢