cancel
Showing results for 
Search instead for 
Did you mean: 

Cache request failed error when downloading Excel sheet

Former Member
0 Kudos

Hi All,

I am getting a Cache Request failed Error when i am trying to download Excel sheet.

Following is the error i got :

Cache request failed!
[EXCEPTION]
com.sap.tc.webdynpro.services.sal.util.cache.InvalidResourceKeyException: '~wd_key_nGSIBmh8HSHlLWgd' is not a valid resource key
at com.sap.tc.webdynpro.services.sal.datatransport.core.ResourceManager$ScopeResourceCache.getResource(ResourceManager.java:858)
at com.sap.tc.webdynpro.services.sal.datatransport.core.ResourceManager.getResource(ResourceManager.java:277)
at com.sap.tc.webdynpro.clientserver.cal.WebDynproExchangeHandler.responseCachedWebResource(WebDynproExchangeHandler.java:100)
at com.sap.tc.webdynpro.clientserver.cal.WebDynproExchangeHandler.doExchange(WebDynproExchangeHandler.java:66)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1526)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingStandalone(ApplicationSession.java:907)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessing(ApplicationSession.java:879)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:358)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:330)
at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)
at com.sap.tc.webdynpro.serverimpl.wdc.DispatcherServlet.doContent(DispatcherServlet.java:89)
at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doGet(AbstractDispatcherServlet.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:404)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:204)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:440)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:429)
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:82)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:268)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:54)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:447)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)

Whenever i try to download the excel for the first time i get this error and a blank popup page, but when i try it second/third time , i am able to download the excel then.

Can anyone explain the weird behaviour of this?

Regards,

Harshada

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

try this code,

FileInputStream excelCSVFile = new FileInputStream(f);

IWDResource cachedExcelResource = WDResourceFactory.createCachedResource(excelCSVFile, fileName,WDWebResourceType.XLS, false);

if (cachedExcelResource != null) {

wdContext.currentContextElement().setExcelURL(cachedExcelResource.getUrl(0));

wdContext.currentContextElement().setExcelFile(cachedExcelResource.getResourceName());

} else {

wdComponentAPI.getMessageManager().reportException("Failed to create Excel file );

}

regards,

Rakesh Mathew

Former Member
0 Kudos

Hi Rakesh,

Thanks for your help. My code is working fine now after i made the changes suggested by you.

Regards,

Harshada

Answers (1)

Answers (1)

junwu
Active Contributor
0 Kudos

how you generate the download link?

Former Member
0 Kudos

Hi Jun Wu,

I am using a java code to download the excel link.

The code snippet i am using is as below.    

File excelFile = convertToExcelNew1(Vn_dataNode, columnInfosMap,

                              colordersMap, secColInfoMap,fileName);

FileInputStream fis = new FileInputStream(excelFile);

IWDResource resource = null;

if (excelFile != null) {

resource = WDResourceFactory.createResource(fis, fileName,

                 WDWebResourceType.XLS, true);

  }

linktoFile = resource.getUrl(1);

Regards,

Harshada

junwu
Active Contributor
0 Kudos

don't use File, i think all the data are in the memory, you can construct other type of input stream...