We are using struts-bridge and the Action class used is
"DispatchAction".
We are facing an issue when the <expiration-cache> is set as "0" in the
portlet.xml file.
Initially when the page for a tab is loaded the data is fetched and
displayed properly, whereas when we move across pages or hits the IE
refresh button we are getting the error stating the parameter required
for DispatchAction is missing. The details are given below.

Please advise us on this issue. 

The error is as follows:
-------------------------
Request[/OVSRAdministration] does not contain handler parameter named
'action'. This may be caused by whitespace in the label text. 
Error Type javax.servlet.ServletException Stacktrace
org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java
:215)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j
ava:249)
com.qwest.sip.actions.QwestDispatchAction.dispatchMethod(QwestDispatchAc
tion.java:211)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187
)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr
ocessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
236)
org.apache.portals.bridges.struts.PortletRequestProcessor.process(Portle
tRequestProcessor.java:51)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:574)
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:499)
org.apache.portals.bridges.struts.StrutsPortlet.processRequest(StrutsPor
tlet.java:427)
org.apache.portals.bridges.struts.StrutsPortlet.doView(StrutsPortlet.jav
a:301)
javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortl
etInstance.java:102)
org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedCon
tainerServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:574)
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:499)
org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(Servl
etPortletInvoker.java:246)
org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(Servl
etPortletInvoker.java:128)
org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl
.java:119)
org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPort
let(JetspeedPortletContainerWrapper.java:120)
org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJo
bImpl.java:242)
org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(Portle
tRendererImpl.java:224)
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRende
r(PageAggregatorImpl.java:146)
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRende
r(PageAggregatorImpl.java:142)
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggrega
torImpl.java:77)
org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.ja
va:48)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.aggregator.HeaderAggregatorValve.invoke(HeaderAggreg
atorValve.java:55)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.ja
va:97)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionVal
veImpl.java:182)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:
76)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValve
Impl.java:255)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginV
alidationValveImpl.java:159)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(Pas
swordCredentialValveImpl.java:149)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(Local
izationValveImpl.java:169)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSe
curityValve.java:118)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:437)
org.apache.jetspeed.security.JSSubject.doAsPrivileged(JSSubject.java:195
)
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractS
ecurityValve.java:112)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalU
RLValveImpl.java:67)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(Capabil
ityValveImpl.java:128)
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.ja
va:145)
org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:21
4)
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:24
2)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter.doFilter(XXSUrlAtt
ackFilter.java:51)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:432)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:86
9)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
java.lang.Thread.run(Thread.java:534)
 

Portlet.xml:
------------
 <portlet id="OVSRAdministrationPortlet">
    <description>The OVSRAdministrationPortlet Struts Converted
Portlet</description>
    <portlet-name>OVSRAdministrationPortlet</portlet-name>
    <display-name>OVSRAdministrationPortlet</display-name>
 
<portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-
class>
    <init-param>
      <name>ServletContextProvider</name>
 
<value>org.apache.jetspeed.portlet.ServletContextProviderImpl</value>
    </init-param>
    <init-param>
      <name>ViewPage</name>
          <value>/jsp/reportadministration/ovsrInitial.jsp</value>
    </init-param>    
          <expiration-cache>0</expiration-cache>
    <supports>
      <mime-type>text/html</mime-type>
      <portlet-mode>VIEW</portlet-mode>
    </supports>
    <portlet-info>
      <title>CustomerAdminTestPortlet</title>
      <keywords>CustomerAdminTestPortlet</keywords>
    </portlet-info>
  </portlet>

JSP which does the initial load for a page:
------------------------------------------
<%@ taglib uri="http://struts.apache.org/tags-logic"; prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-bean"; prefix="bean" %>
<%@ taglib
uri="http://portals.apache.org/bridges/struts/tags-portlet-html";
prefix="html" %>
<%@ taglib
uri="http://portals.apache.org/bridges/struts/tags-portlet-html-el";
prefix="html-el" %>
<script type="text/javascript">
function submitForm(){  
        document.ovsrForm.action.value="retreiveOVSRList";      
        document.ovsrForm.submit();
}
</script>
<center>
<html:form method="post" action="/OVSRAdministration.do">
<html:hidden property="action" value=""/>
<script type="text/javascript">
submitForm();
</script>
</html:form>
</center>

struts-config.xml:
--------------------
        <action path="/OVSRAdministration"
                        name="ovsrForm"
                        scope="request"
                        validate="false"
                        parameter="action"
                        type="com.qwest.sip.actions.OVSRServerAction">
                                <forward name="retreivalsuccess"
path="/jsp/reportadministration/OVSRServerAdministration.jsp"/>
                    <forward name="success"
path="/jsp/reportadministration/success_ovsradmin.jsp"/>
                                <forward name="newretreivalsuccess"
path="/jsp/reportadministration/OVSRServerAdministration.jsp"/>

                                <forward name="failure_error"
path="/jsp/reportadministration/failure_ovsradmin.jsp"/>        
                                <forward name="logout"
path="/jsp/security/logout_inter.jsp"/>  
                                <forward name="callIntermediateBack"
path="/jsp/reportadministration/ovsradmin_intermediate.jsp"/>
        </action>


struts-portlet-config.xml:
---------------------------
<config>
  <render-context>
        <attribute name="action"/>
      <attribute name="errors"/>
      <attribute name="message"/>               
 </render-context>
 <portlet-url-type>
      <resource path="/image/"/>
        <resource path="/script/"/>
        <resource path="/style/"/>
 </portlet-url-type>
</config>  

Regards
Anil

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to