简体   繁体   English

Liferay 7.1 中 portetRequestDispatcher 的 UnsupportedOperationException

[英]UnsupportedOperationException with portetRequestDispatcher in Liferay 7.1

I'm getting a issue with a portletRequestDispatcher that give me an UnsupportedOperationException.我遇到了一个 portletRequestDispatcher 的问题,它给了我一个 UnsupportedOperationException。

So, I have a part of my jsp page look like this :所以,我的jsp页面的一部分看起来像这样:

<div id="correspTree">
    <%@include file="html/fragment/correspTree.jsp"%>
</div>

. . When i'm changing a value in an input, it calls the javascript function :当我更改输入中的值时,它会调用 javascript 函数:

    function refreshTree(inputElement){

    var correspCode = $(inputElement).val();
    var url = $("#refreshTreeURL").val();

    $.ajax({
            url : url,
            data : {
                correspCode:correspCode
           },
          type: 'POST',
          success : function(data) {
                console.log(data);
          }
  });
}

Then, i lands in my function :然后,我进入我的功能:

private void refreshTree(ResourceRequest resourceRequest, ResourceResponse resourceResponse){

    PortletRequestDispatcher portletRequestDispatcher = getPortletContext().getRequestDispatcher("html/fragment/correspTree.jsp");

    String correspCode = ParamUtil.getString(resourceRequest, KEY_CORRESP_CODE);
    Map<Correspondent, Map<Correspondent, List<Correspondent>>> correspondentMap = CorrespondentLocalServiceUtil.findCorrespondentHierarchy(correspCode);
    Map<String, Boolean> resultRightMap = new HashMap<String, Boolean>();

    resourceRequest.setAttribute(KEY_CORRESP_MAP, correspondentMap);
    resourceRequest.setAttribute(KEY_RESULT_RIGHT_MAP, resultRightMap);

    try {
        portletRequestDispatcher.include(resourceRequest, resourceResponse);
    } catch (PortletException e) {
        log.error(e);
    } catch (IOException e) {
        log.error(e);
    }

}

And when i arrive in the portletRequestDispatcher.include i'm getting the UnsupportedOperationException :当我到达 portletRequestDispatcher.include 时,我收到了 UnsupportedOperationException :

2019-01-09 16:06:30.210 ERROR [http-nio-8080-exec-3][AbstractResultRightPortlet:182] null javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.UnsupportedOperationException at com.liferay.portlet.internal.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:301) at com.liferay.portlet.internal.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:128) at com.eurofins.cdxconnect.portlet.AbstractResultRightPortlet.refreshTree(AbstractResultRightPortlet.java:180) at com.eurofins.cdxconnect.portlet.AbstractResultRightPortlet.serveResource(AbstractResultRightPortlet.java:91) at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:146) at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:86) at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:140) at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:78) at com.liferay.po 2019-01-09 16:06:30.210 错误 [http-nio-8080-exec-3][AbstractResultRightPortlet:182] null javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.UnsupportedOperationException at com. liferay.portlet.internal.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:301) 在 com.liferay.portlet.internal.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:128) 在 com.eurofins.cdxconnect.portlet.PortAbstractAbstractResultRightResultRight java:180) 在 com.eurofins.cdxconnect.portlet.AbstractResultRightPortlet.serveResource(AbstractResultRightPortlet.java:91) 在 com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:146) 在 com.liferay.portlet.ScriptDataPortletFilter .doFilter(ScriptDataPortletFilter.java:86) at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:140) at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:78) at com.liferay.po rtal.kernel.servlet.PortletServlet.service(PortletServlet.java:108) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153) at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62) at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:118) at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:40) at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java:603) at com.liferay.portlet.internal.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:727) at com.liferay.portlet.internal.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:546) at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.serveResource(MonitoringInvokerPortlet.java:305) at co rtal.kernel.servlet.PortletServlet.service(PortletServlet.java:108) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration。服务(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:118) at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:40) at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java: 603)在com.liferay.portlet.internal.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:727)在com.liferay.portlet.internal.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:546)在com.liferay.portal.monitoring.internal .portlet.MonitoringInvokerPortlet.serveResource(MonitoringInvokerPortlet.java:305) 在 co m.liferay.portlet.internal.PortletContainerImpl._serveResource(PortletContainerImpl.java:985) at com.liferay.portlet.internal.PortletContainerImpl.lambda$serveResource$4(PortletContainerImpl.java:254) at com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:390) at com.liferay.portlet.internal.PortletContainerImpl.serveResource(PortletContainerImpl.java:247) m.liferay.portlet.internal.PortletContainerImpl._serveResource(PortletContainerImpl.java:985) at com.liferay.portlet.internal.PortletContainerImpl.lambda$serveResource$4(PortletContainerImpl.java:254) at com.liferay.portlet.internal.PortletContainerImpl ._preserveGroupIds(PortletContainerImpl.java:390) 在 com.liferay.portlet.internal.PortletContainerImpl.serveResource(PortletContainerImpl.java:247)

Thanks for your help谢谢你的帮助

I'm getting a issue with a portletRequestDispatcher that give me an UnsupportedOperationException.我遇到了一个 portletRequestDispatcher 的问题,它给了我一个 UnsupportedOperationException。

So, I have a part of my jsp page look like this :所以,我的jsp页面的一部分看起来像这样:

<div id="correspTree">
    <%@include file="html/fragment/correspTree.jsp"%>
</div>

. . When i'm changing a value in an input, it calls the javascript function :当我更改输入中的值时,它会调用 javascript 函数:

    function refreshTree(inputElement){

    var correspCode = $(inputElement).val();
    var url = $("#refreshTreeURL").val();

    $.ajax({
            url : url,
            data : {
                correspCode:correspCode
           },
          type: 'POST',
          success : function(data) {
                console.log(data);
          }
  });
}

Then, i lands in my function :然后,我进入我的功能:

private void refreshTree(ResourceRequest resourceRequest, ResourceResponse resourceResponse){

    PortletRequestDispatcher portletRequestDispatcher = getPortletContext().getRequestDispatcher("html/fragment/correspTree.jsp");

    String correspCode = ParamUtil.getString(resourceRequest, KEY_CORRESP_CODE);
    Map<Correspondent, Map<Correspondent, List<Correspondent>>> correspondentMap = CorrespondentLocalServiceUtil.findCorrespondentHierarchy(correspCode);
    Map<String, Boolean> resultRightMap = new HashMap<String, Boolean>();

    resourceRequest.setAttribute(KEY_CORRESP_MAP, correspondentMap);
    resourceRequest.setAttribute(KEY_RESULT_RIGHT_MAP, resultRightMap);

    try {
        portletRequestDispatcher.include(resourceRequest, resourceResponse);
    } catch (PortletException e) {
        log.error(e);
    } catch (IOException e) {
        log.error(e);
    }

}

And when i arrive in the portletRequestDispatcher.include i'm getting the UnsupportedOperationException :当我到达 portletRequestDispatcher.include 时,我收到了 UnsupportedOperationException :

2019-01-09 16:06:30.210 ERROR [http-nio-8080-exec-3][AbstractResultRightPortlet:182] null javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.UnsupportedOperationException at com.liferay.portlet.internal.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:301) at com.liferay.portlet.internal.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:128) at com.eurofins.cdxconnect.portlet.AbstractResultRightPortlet.refreshTree(AbstractResultRightPortlet.java:180) at com.eurofins.cdxconnect.portlet.AbstractResultRightPortlet.serveResource(AbstractResultRightPortlet.java:91) at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:146) at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:86) at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:140) at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:78) at com.liferay.po 2019-01-09 16:06:30.210 错误 [http-nio-8080-exec-3][AbstractResultRightPortlet:182] null javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.UnsupportedOperationException at com. liferay.portlet.internal.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:301) 在 com.liferay.portlet.internal.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:128) 在 com.eurofins.cdxconnect.portlet.PortAbstractAbstractResultRightResultRight java:180) 在 com.eurofins.cdxconnect.portlet.AbstractResultRightPortlet.serveResource(AbstractResultRightPortlet.java:91) 在 com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:146) 在 com.liferay.portlet.ScriptDataPortletFilter .doFilter(ScriptDataPortletFilter.java:86) at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:140) at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:78) at com.liferay.po rtal.kernel.servlet.PortletServlet.service(PortletServlet.java:108) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153) at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62) at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:118) at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:40) at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java:603) at com.liferay.portlet.internal.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:727) at com.liferay.portlet.internal.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:546) at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.serveResource(MonitoringInvokerPortlet.java:305) at co rtal.kernel.servlet.PortletServlet.service(PortletServlet.java:108) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration。服务(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:118) at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:40) at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java: 603)在com.liferay.portlet.internal.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:727)在com.liferay.portlet.internal.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:546)在com.liferay.portal.monitoring.internal .portlet.MonitoringInvokerPortlet.serveResource(MonitoringInvokerPortlet.java:305) 在 co m.liferay.portlet.internal.PortletContainerImpl._serveResource(PortletContainerImpl.java:985) at com.liferay.portlet.internal.PortletContainerImpl.lambda$serveResource$4(PortletContainerImpl.java:254) at com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:390) at com.liferay.portlet.internal.PortletContainerImpl.serveResource(PortletContainerImpl.java:247) m.liferay.portlet.internal.PortletContainerImpl._serveResource(PortletContainerImpl.java:985) at com.liferay.portlet.internal.PortletContainerImpl.lambda$serveResource$4(PortletContainerImpl.java:254) at com.liferay.portlet.internal.PortletContainerImpl ._preserveGroupIds(PortletContainerImpl.java:390) 在 com.liferay.portlet.internal.PortletContainerImpl.serveResource(PortletContainerImpl.java:247)

Thanks for your help谢谢你的帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM