cancel
Showing results for 
Search instead for 
Did you mean: 

Error while calling webscript from dashlet?

dynamolalit
Champ on-the-rise
Champ on-the-rise
Hi,

I have created a dashlet which will show top n content uploader.

Here is my dashlet  jsp for the same as below .

kmContributions.jsp :

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %><%@ page import="com.xxxx.alfresco.km.webscripts.WebScriptInvoker"%><%@ page import="com.xxxx.alfresco.km.webscripts.WebScriptCall"%> <%@ page import="java.lang.Integer"%> <f:verbatim><FORM id="1" NAME="myform" ACTION="/jsp/extension/dashlets/kmContributions.jsp" METHOD="POST">    <p>   Number of KM Contributors :    <select id="2" name="number">     <option value="Select">Select</option>     <option value="5">5</option>     <option value="10">10</option>     <option value="15">15</option>     <option value="20">20</option>     <option value="25">25</option>   </select>   <p>   Location for Search :    <select id="3" name="location">   <option value="Select">Select</option>     <option value="all">All</option>     <option value="xx">xx</option>    <option value="xx2">xx2</option>   </select>   <p>   <INPUT id="4" TYPE="submit" NAME="Search" Value="Search" "></FORM></f:verbatim><%! String number = null; %><%! String location = null; %><%! String link = null; %><%   number = (String)request.getParameter("number");     System.out.println("Top KM Contributors in kmContributions.jsp : "+ number);    location = (String)request.getParameter("location");     System.out.println("Location in kmContributions.jsp "+location);   if(number == null || location == null || number.equalsIgnoreCase("Select") || location.equalsIgnoreCase("Select")){      //Do Nothing      System.out.println("Invalid Value");   }else{      // Call Webscript      System.out.println("valid Value");       link = "/wcs/com/xxxx/km/gettopcontributors?number="+number+"&location="+location;      System.out.println("Web Script URL Value : "+link);      %>      <r:webScript scriptUrl="<%=link%>" />   <%}%>‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

I am calling a java backed web script  from this dashlet which returns me all the top n contributors in  html as below .

   res.setContentType("text/html ");   finalOutput +="<f:verbatim>";   finalOutput += "<b>Top "+ num +" KM Contributors in xxxx KM Space for " +location+" location(s) are :</b> <br><br>";      finalOutput +=    "<html>"+   "<body>"+   "<table border=1>"+   "<tr>"+   "<th>"+   "User Id"+    "</th>"+   "<th>"+   "Total Content "+   "</th>"+   "</tr>";   for(int k = 0; k < cnt ; k++){            finalOutput += "<tr><td align=left>";   finalOutput += finalKeyList.get(k).toString();   finalOutput +="</td><td align=left>";   finalOutput += finalValueList.get(k).toString();   finalOutput += "</td></tr>";   }   finalOutput += "</table></body></html>";   finalOutput +="</f:verbatim>";   logger.debug("finalOutput : "+finalOutput);   res.getWriter().write(finalOutput);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

But i am getting error on my browser as below but no error on server console. :?


HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjavax.faces.FacesException: java.lang.IllegalStateException: Client-id : _idJsp19 is duplicated in the faces tree. Component : dashboard:dash-body:dashlet-3-view:_idJsp19, path: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/dashboards/container.jsp][Class: javax.faces.component.html.HtmlForm,Id: dashboard][Class: javax.faces.component.UINamingContainer,Id: dash-body][Class: javax.faces.component.html.HtmlPanelGrid,Id: _idJsp12][Class: org.alfresco.web.ui.common.component.UIPanel,Id: dashlet-3][Class: javax.faces.component.UINamingContainer,Id: dashlet-3-view][Class: org.alfresco.web.ui.common.component.data.UIRichList,Id: pooled-tasks-list][Class: org.alfresco.web.ui.common.component.data.UIColumn,Id: col1][Class: org.alfresco.web.ui.common.component.UIActionLink,Id: col1-act2][Class: javax.faces.component.UIParameter,Id: _idJsp19]}   org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)   org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)   org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)   org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)   javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)   org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:110)   sun.reflect.GeneratedMethodAccessor498.invoke(Unknown Source)   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   java.lang.reflect.Method.invoke(Method.java:597)   org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:122)   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   $Proxy210.doFilter(Unknown Source)   org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)   org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:74)   sun.reflect.GeneratedMethodAccessor498.invoke(Unknown Source)   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   java.lang.reflect.Method.invoke(Method.java:597)   org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:122)   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   $Proxy210.doFilter(Unknown Source)   org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)root causeorg.apache.jasper.JasperException: java.lang.IllegalStateException: Client-id : _idJsp19 is duplicated in the faces tree. Component : dashboard:dash-body:dashlet-3-view:_idJsp19, path: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/dashboards/container.jsp][Class: javax.faces.component.html.HtmlForm,Id: dashboard][Class: javax.faces.component.UINamingContainer,Id: dash-body][Class: javax.faces.component.html.HtmlPanelGrid,Id: _idJsp12][Class: org.alfresco.web.ui.common.component.UIPanel,Id: dashlet-3][Class: javax.faces.component.UINamingContainer,Id: dashlet-3-view][Class: org.alfresco.web.ui.common.component.data.UIRichList,Id: pooled-tasks-list][Class: org.alfresco.web.ui.common.component.data.UIColumn,Id: col1][Class: org.alfresco.web.ui.common.component.UIActionLink,Id: col1-act2][Class: javax.faces.component.UIParameter,Id: _idJsp19]}   org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)   org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)   org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)   org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)   org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)   javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)   org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:110)   sun.reflect.GeneratedMethodAccessor498.invoke(Unknown Source)   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   java.lang.reflect.Method.invoke(Method.java:597)   org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:122)   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   $Proxy210.doFilter(Unknown Source)   org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)   org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:74)   sun.reflect.GeneratedMethodAccessor498.invoke(Unknown Source)   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   java.lang.reflect.Method.invoke(Method.java:597)   org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:122)   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   $Proxy210.doFilter(Unknown Source)   org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)root causejava.lang.IllegalStateException: Client-id : _idJsp19 is duplicated in the faces tree. Component : dashboard:dash-body:dashlet-3-view:_idJsp19, path: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/dashboards/container.jsp][Class: javax.faces.component.html.HtmlForm,Id: dashboard][Class: javax.faces.component.UINamingContainer,Id: dash-body][Class: javax.faces.component.html.HtmlPanelGrid,Id: _idJsp12][Class: org.alfresco.web.ui.common.component.UIPanel,Id: dashlet-3][Class: javax.faces.component.UINamingContainer,Id: dashlet-3-view][Class: org.alfresco.web.ui.common.component.data.UIRichList,Id: pooled-tasks-list][Class: org.alfresco.web.ui.common.component.data.UIColumn,Id: col1][Class: org.alfresco.web.ui.common.component.UIActionLink,Id: col1-act2][Class: javax.faces.component.UIParameter,Id: _idJsp19]}   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:329)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:341)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:341)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:341)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:338)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:341)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:341)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:338)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:338)   org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:341)   org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:286)   org.apache.myfaces.taglib.core.ViewTag.doAfterBody(ViewTag.java:125)   org.apache.jsp.jsp.dashboards.container_jsp._jspService(container_jsp.java:540)   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)   org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)   org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)   org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)   org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)   javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)   org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:110)   sun.reflect.GeneratedMethodAccessor498.invoke(Unknown Source)   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   java.lang.reflect.Method.invoke(Method.java:597)   org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:122)   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   $Proxy210.doFilter(Unknown Source)   org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)   org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:74)   sun.reflect.GeneratedMethodAccessor498.invoke(Unknown Source)   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   java.lang.reflect.Method.invoke(Method.java:597)   org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:122)   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   $Proxy210.doFilter(Unknown Source)   org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

I am wondering what is going wrong here.Is it a redirection issue or JSF issue or anything else. :?:

Any help will be highly appreciated.
3 REPLIES 3

dynamolalit
Champ on-the-rise
Champ on-the-rise
Hi All,

Strange is the thing that if i remove all dashlets except my custom dashlet, then it is working fine without any error on browser & i can see html output  on my dashlet? Smiley Surprisedops:

But i want all dashlets to be present on dashboard.

Any help/idea/suggestion? :idea:

Thanks in Advance.

dynamolalit
Champ on-the-rise
Champ on-the-rise
Hi Again,

On investigation i found the issue is due to intermingling of <f:verbatim> tags inside dashboard. Smiley Indifferent

So I found a kinda workaround for it by forwarding to another page once results are got in jsp. :arrow:

topKmContributorSearch.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %><%@ page import="com.xxxx.alfresco.km.webscripts.WebScriptInvoker"%><%@ page import="com.xxxx.alfresco.km.webscripts.WebScriptCall"%> <%@ page import="java.lang.Integer"%> <%@ page import="com.xxxx.alfresco.km.property.KmPropertyReader"%> <%– JSP to get top KM content contributors in xxxx KM Sapce–%><f:verbatim><FORM id="form1" NAME="myform" ACTION="/jsp/extension/dashlets/topKmContributorSearch.jsp" METHOD="POST">                Number of KM Contributors :    <select id="number" name="number">     <option id="number1" value="Select">Select</option>     <option id="number2" value="5">5</option>     <option id="number3" value="10">10</option>     <option id="number4" value="15">15</option>     <option id="number5" value="20">20</option>     <option id="number6" value="25">25</option>   </select>   <p>   Contributors' Location for Search :    <select id="location" name="location">   <option id="location1" value="Select">Select</option>     <option id="location2" value="all">All</option>     <option id="location3" value="x">x</option>     <option id="location4" value="xx">xx</option>     <option id="location5" value="xxx">xxx</option>   </select>   <p>                                                     <INPUT id="4" TYPE="submit" NAME="Search" Value="Search Contributors"></FORM></f:verbatim><%! String number = null; %><%! String location = null; %><%! String result = null; %><%   number = (String)request.getParameter("number");     System.out.println("Top KM Contributors in kmContributions.jsp : "+ number);    location = (String)request.getParameter("location");     System.out.println("Location in kmContributions.jsp "+location);   if(number == null || location == null || number.equalsIgnoreCase("Select") || location.equalsIgnoreCase("Select")){      //Do Nothing      System.out.println("Invalid Value");   }else{      // Call Webscript      System.out.println("valid Value");      KmPropertyReader kmPropertyReader = new KmPropertyReader();      String adminUserName = kmPropertyReader.getProperty("admin.username");      System.out.println("adminUserName : "+adminUserName);      String adminUserPwd = kmPropertyReader.getProperty("admin.password");      System.out.println("adminUserPwd : "+adminUserPwd);      String webScriptUrl = kmPropertyReader.getProperty("topkmconrtibutors.webscripturl");      //System.out.println("webScriptUrl : "+webScriptUrl);      String fullWebScriptUrl = webScriptUrl+number+"&location="+location;      System.out.println("Web Script URL Value in jsp : "+fullWebScriptUrl);      WebScriptInvoker invoker = new WebScriptInvoker();      result = invoker.doWork(adminUserName, adminUserPwd, "GET", fullWebScriptUrl);      //System.out.println("result in jsp!!: "+result);      request.setAttribute("result",result);%>      <f:verbatim >      <jsp:forward page="/jsp/extension/dashlets/topKmContributorSearchResults.jsp"/>            </f:verbatim>      <%      number = null;   location = null;   }%>‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Now ,I am invoking webscript using WebScriptInvoker.java in jsp.

package com.xxxx.alfresco.km.webscripts;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URI;import java.net.URL;import javax.faces.context.FacesContext;import org.alfresco.model.ContentModel;import org.alfresco.service.cmr.repository.NodeRef;import org.alfresco.service.cmr.repository.NodeService;import org.alfresco.service.cmr.security.PersonService;import org.alfresco.util.Base64;import org.alfresco.web.app.servlet.FacesHelper;import org.alfresco.web.bean.NavigationBean;import org.alfresco.web.bean.repository.Repository;import org.alfresco.webservice.util.AuthenticationUtils;import org.apache.log4j.Logger;public class WebScriptInvoker {      private static Logger logger = Logger.getLogger(WebScriptInvoker.class);   //private static final String USAGE = "java WebScriptInvoker <username> <password> <HTTP method> <web script URL>";   private static NodeService nodeService;   private static PersonService personService;    private String user;       private String password;    private String scriptUrlString;    private String method;    private String ticket;       private String usrName;               public String doWork(String userName, String password, String method, String webScriptURL) {      logger.debug("Inside doWork !!! : userName "+userName+" password "+password+" method "+method+" scriptURL "+webScriptURL);      //String userPwd = getUserPassword();      //logger.debug("userPwd here !!! : "+userPwd);      //System.out.println("userPwd !!! : "+userPwd);      String result;       setUser(userName);       setPassword(password);       setMethod(method);       setScriptUrl(webScriptURL);              logger.debug("userName !!!"+getUser()+" password "+getPassword()+" method "+getMethod()+" scriptURL "+getScriptUrl());             HttpURLConnection conn = null;            try {         AuthenticationUtils.startSession(getUser(), getPassword());         setTicket(AuthenticationUtils.getTicket());         URL scriptUrl = (new URI(getScriptUrl())).toURL();         logger.debug("Invoking Web Script : " + scriptUrl);                  conn = (HttpURLConnection)scriptUrl.openConnection();         conn.setRequestMethod(getMethod());         conn.setRequestProperty("Authorization", "Basic " + Base64.encodeBytes((getTicket()).getBytes()));         //3.0 and later can do HTTP method tunneling         conn.connect();                  logger.debug("Response code: " + conn.getResponseCode());                  BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));            StringBuffer buffer = new StringBuffer();         String line;         while ((line = in.readLine()) != null) {            buffer.append(line);         }         logger.debug("Web Script Output in doWork() "+buffer.toString());         result = buffer.toString();      } catch (Exception serviceException) {         logger.error("Exception while invoking web script "+serviceException.getMessage());           throw new RuntimeException("Problem invoking web script", serviceException);       } finally {                       // End the session           AuthenticationUtils.endSession();           if (conn != null) conn.disconnect();       }      // logger.debug("12");       return result;   }            public String getPassword() {      return password;   }   public void setPassword(String password) {      this.password = password;   }   public String getUser() {      return user;   }   public void setUser(String user) {      this.user = user;   }   public String getMethod() {      return method;   }   public void setMethod(String method) {      this.method = method;   }   public String getScriptUrl() {      return scriptUrlString;   }   public void setScriptUrl(String scriptUrl) {      this.scriptUrlString = scriptUrl;   }      public String getTicket() {      return ticket;   }   public void setTicket(String ticket) {      this.ticket = ticket;   }   public static NodeService getNodeService() {      return nodeService;   }   public static void setNodeService(NodeService nodeService) {      WebScriptInvoker.nodeService = nodeService;   }   public static PersonService getPersonService() {      return personService;   }   public static void setPersonService(PersonService personService) {      WebScriptInvoker.personService = personService;   }}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Now if i have some valid results in my jsp, i am redirecting to another jsp using code as below:


<f:verbatim >
<jsp:forward page="/jsp/extension/dashlets/topKmContributorSearchResults.jsp"/>      
</f:verbatim>

But still user can not see results on same page which is my original intention. :roll:

If anybody knows a way to fix it,please let me know.  :idea:

Thanks in advance.

bergerrc
Champ in-the-making
Champ in-the-making
I had a similar problem using <r:webscript> in user management page (/jsp/users/users.jsp). There are no errors on console neither on page, but the html content of webscript was not loaded. I had opened a issue for that but I already change the code as you can see here. My change was to call my webscript using ajax.

In users.jsp, include the javascripts to ajax handling and add a div or other object that will contain the content of webscript:
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/ajax/yahoo/yahoo/yahoo-min.js"> </script><script type="text/javascript" src="<%=request.getContextPath()%>/scripts/ajax/yahoo/connection/connection-min.js"> </script><script type="text/javascript" src="<%=request.getContextPath()%>/scripts/ajax/common.js"> </script><script type="text/javascript" src="<%=request.getContextPath()%>/scripts/webscript.ajax.js"> </script>//DIV will be replaced by the static content of webscript<div id="content_will_replaceme" />‍‍‍‍‍‍‍‍‍

The code of webscript.ajax.js was shown here:
function printResult(response){        var z = document.getElementById("content_will_replaceme");   z.outerHTML=response.responseText;}function loadDefaults(){   var z = document.getElementsById("content_will_replaceme");   z.innerHTML="<img src='"+getContextPath()+"/images/icons/ajax_anim.gif'/>";   YAHOO.util.Connect.asyncRequest("GET", getContextPath() + "/wcs/myScript",       {          success: printResult,         failure: printResult      },       null);}if (window.addEventListener) { //Mozila   window.addEventListener('load', loadDefaults, false); } else if (window.attachEvent) { //IE   window.attachEvent('onload', loadDefaults);}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍