cancel
Showing results for 
Search instead for 
Did you mean: 

File download problem

Former Member
0 Kudos

i am getting the following error any idea how to solve this

download the file in a table with binary attachment

context

+EmailOutDetails (parent)

.............--attachment (child)

.............--attachmentid (child)

.............--attachmentName(child)

.............--emailId (child)

.............--fileSize (child)

+attachment

+fileSize

if from the sample tutorial it is in the first level of the Context,

but if i have multiple attachment

i need to put it in EmailsOutDetail Node

it works in this way

IWDAttributeInfo attInfo=wdContext.getNodeInfo().getAttribute(IPrivateMailOutboundView.IContextElement.ATTACHMENT);

IWDModifiableBinaryType binaryType=(IWDModifiableBinaryType)attInfo.getModifiableSimpleType();

binaryType.setFileName(outMailDet.getAttachmentName());

binaryType.setMimeType(WDWebResourceType.UNKNOWN);

try{

wdContext.currentContextElement().setAttachment(attachment);

wdContext.currentContextElement().setFileSize(getFileSize(attachment));

}catch(Exception e){

System.err.println("Attachment file download exception:" +e.getMessage());

throw new WDRuntimeException(e);

}

java.lang.IllegalArgumentException

at com.sap.dictionary.runtime.DdTypeBinary.format(DdTypeBinary.java:60)

at com.sap.tc.webdynpro.clientserver.data.DataContainer.doFormat(DataContainer.java:1389)

at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1083)

at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1055)

at com.sap.tc.webdynpro.clientimpl.html.uielib.standard.uradapter.FileDownloadAdapter.getReference(FileDownloadAdapter.java:260)

at com.sap.tc.ur.renderer.ie6.LinkRenderer.render(LinkRenderer.java:42)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.SapTableCellRenderer.renderSapTableGenericCellFragment(SapTableCellRenderer.java:1328)

at com.sap.tc.ur.renderer.ie6.SapTableCellRenderer.renderSapTableCellFragment(SapTableCellRenderer.java:228)

at com.sap.tc.ur.renderer.ie6.SapTableCellRenderer.render(SapTableCellRenderer.java:68)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.SapTableRowRenderer.renderSapTableRowFragment(SapTableRowRenderer.java:89)

at com.sap.tc.ur.renderer.ie6.SapTableRowRenderer.render(SapTableRowRenderer.java:38)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.SapTableDefaultBodyRenderer.renderSapTableDefaultBodyFragment(SapTableDefaultBodyRenderer.java:170)

at com.sap.tc.ur.renderer.ie6.SapTableDefaultBodyRenderer.render(SapTableDefaultBodyRenderer.java:33)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.SapTableRenderer.renderSapTableFragment(SapTableRenderer.java:602)

at com.sap.tc.ur.renderer.ie6.SapTableRenderer.render(SapTableRenderer.java:68)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:255)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:192)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:38)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:540)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:783)

at com.sap.tc.ur.renderer.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:401)

at com.sap.tc.ur.renderer.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:318)

at com.sap.tc.ur.renderer.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:68)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:540)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.ViewContainerRenderer.renderViewContainerFragment(ViewContainerRenderer.java:118)

at com.sap.tc.ur.renderer.ie6.ViewContainerRenderer.render(ViewContainerRenderer.java:38)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:255)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:192)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:38)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:540)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.TabStripRenderer.renderTabStripItemContentFragment(TabStripRenderer.java:1729)

at com.sap.tc.ur.renderer.ie6.TabStripRenderer.renderTabStripFragment(TabStripRenderer.java:646)

at com.sap.tc.ur.renderer.ie6.TabStripRenderer.render(TabStripRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:255)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:192)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:38)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:540)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.TabStripRenderer.renderTabStripItemContentFragment(TabStripRenderer.java:1729)

at com.sap.tc.ur.renderer.ie6.TabStripRenderer.renderTabStripFragment(TabStripRenderer.java:646)

at com.sap.tc.ur.renderer.ie6.TabStripRenderer.render(TabStripRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:339)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:192)

at com.sap.tc.ur.renderer.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:38)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.SingleColumnLayoutRenderer.renderSingleColumnLayoutCellFragment(SingleColumnLayoutRenderer.java:605)

at com.sap.tc.ur.renderer.ie6.SingleColumnLayoutRenderer.renderSingleColumnLayoutFragment(SingleColumnLayoutRenderer.java:237)

at com.sap.tc.ur.renderer.ie6.SingleColumnLayoutRenderer.render(SingleColumnLayoutRenderer.java:63)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:698)

at com.sap.tc.ur.renderer.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:58)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.UiWindowRenderer.render(UiWindowRenderer.java:53)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:390)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:129)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendHtml(HtmlClient.java:567)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:358)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:266)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.retrieveData(HtmlClient.java:157)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:430)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:659)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:251)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)


IPrivateMailOutboundView.IEmailOutDetailsElement elem=null;
try{
for(int i=n-1;i>=0;i--){
if(wdContext.nodeTablesEmailOut().isMultiSelected(i) || leadSelected==i){
IPrivateMailOutboundView.ITablesEmailOutElement element=wdContext.nodeTablesEmailOut().getTablesEmailOutElementAt(i);
map.put("EMAILID=","'"+element.getEmailId()+"'");  
col=mailOutDetBean.getMailOutDetBy(map);
System.err.println("col:" +col.size() +" emailid:" +element.getEmailId());
}
for(Iterator it=col.iterator();it.hasNext();){
OutMailDetailsBean outMailDet=(OutMailDetailsBean)it.next();
elem=wdContext.createEmailOutDetailsElement();
elem.setAttachmentId(outMailDet.getAttachmentId());
elem.setAttachmentName(outMailDet.getAttachmentName());
elem.setEmailId(outMailDet.getEmailId());
byte[] attachment=outMailDet.getAttachment();
IWDAttributeInfo attInfo=wdContext.getNodeInfo().getAttribute(IPrivateMailOutboundView.IEmailOutDetailsElement.ATTACHMENT);
IWDModifiableBinaryType binaryType=(IWDModifiableBinaryType)attInfo.getModifiableSimpleType();
binaryType.setFileName(outMailDet.getAttachmentName());
binaryType.setMimeType(WDWebResourceType.UNKNOWN);
	
try{
elem.setAttachment(attachment);		
elem.setFileSize(getFileSize(attachment));
}catch(Exception e){
System.err.println("Attachment file download exception:" +e.getMessage());
throw new WDRuntimeException(e);	
}
detCol.add(elem);
}
wdContext.nodeEmailOutDetails().bind(detCol);
manager.reportSuccess("Outbound Mail Sucessful" +element.getEmailId() +" size: " +col.size());
					
}
}
}catch(Exception e){
System.err.println("Exception in DisplayRowItem:" +e);
}

Message was edited by:

yzme yzme

Message was edited by:

yzme yzme

Message was edited by:

yzme yzme

Message was edited by:

yzme yzme

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

If my question is not clear, i will elaborate more...

from the tutorial for file download, it is only single file,

if i have multiple file, i will put it in tables,

how do i change the code accordingly for the tables ,

i have to create a new node for tables for eg: EmailsOutDetail (Node) with the following attribute : attachment(binary), attachmentId, attachmentName, emailId, fileSize

the example is with attribute : attachment(binary), fileSize under the Context

the code below work


ArrayList detCol=new ArrayList();
byte[] attachment=outMailDet.getAttachment();
IWDAttributeInfo attInfo=wdContext.getNodeInfo().getAttribute(IPrivateMailOutboundView.IContextElement.ATTACHMENT);
IWDModifiableBinaryType binaryType=(IWDModifiableBinaryType)attInfo.getModifiableSimpleType();
binaryType.setFileName(outMailDet.getAttachmentName());
binaryType.setMimeType(WDWebResourceType.UNKNOWN);

try{
wdContext.currentContextElement().setAttachment(attachment);
wdContext.currentContextElement().setFileSize(getFileSize(attachment));
}catch(Exception e){
  System.err.println(e.getMessage());
}

after that i change to :


for(Iterator it=col.iterator();it.hasNext();){
OutMailDetailsBean outMailDet=(OutMailDetailsBean)it.next();
elem=wdContext.createEmailOutDetailsElement();
elem.setAttachmentId(outMailDet.getAttachmentId());
elem.setAttachmentName(outMailDet.getAttachmentName());
elem.setEmailId(outMailDet.getEmailId());
byte[] attachment=outMailDet.getAttachment();
IWDAttributeInfo attInfo=wdContext.getNodeInfo().getAttribute(IPrivateMailOutboundView.IEmailOutDetailsElement.ATTACHMENT);
IWDModifiableBinaryType binaryType=(IWDModifiableBinaryType)attInfo.getModifiableSimpleType();
binaryType.setFileName(outMailDet.getAttachmentName());
binaryType.setMimeType(WDWebResourceType.UNKNOWN);

try{
elem.setAttachment(attachment);
elem.setFileSize(getFileSize(attachment));
}catch(Exception e){
  System.err.println(e.getMessage());
}
detCol.add(elem);
}
wdContext.nodeEmailOutDetails().bind(detCol);

when i change my code for the emailsOutDetail (node) i hit the error? any idea ?

Former Member
0 Kudos

Hi ,

I got your requirement.

In your code..

for(Iterator it=col.iterator();it.hasNext();){
OutMailDetailsBean outMailDet=(OutMailDetailsBean)it.next();
elem=wdContext.createEmailOutDetailsElement();
elem.setAttachmentId(outMailDet.getAttachmentId());
elem.setAttachmentName(outMailDet.getAttachmentName());
elem.setEmailId(outMailDet.getEmailId());
byte[] attachment=outMailDet.getAttachment();

//change this line to 
IWDAttributeInfo attInfo=wdContext.getNodeInfo().getAttribute(IPrivateMailOutboundView.IEmailOutDetailsElement.ATTACHMENT);
//this.. 

IWDAttributeInfo attInfo=wdContext.nodeEmailsOutDetail ().getNodeInfo().getAttribute(IPrivateMailOutboundView.IEmailOutDetailsElement.ATTACHMENT);

IWDModifiableBinaryType binaryType=(IWDModifiableBinaryType)attInfo.getModifiableSimpleType();
binaryType.setFileName(outMailDet.getAttachmentName());
binaryType.setMimeType(WDWebResourceType.UNKNOWN);

Former Member
0 Kudos

while i post the second thread , i dont notice you already answer me...

thanks, you already provide me the solutions ..

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi ,

If you want to use the node EmailOutDetails for storing filedownload data..

Make sure that value attribute "attachment " under EmailOutDetails node.. is of type binary.

Second..

To set MIME information etc, you have to make the "attachement" value attribute inside the node as modifiablesimple type..

IWDAttributeInfo attInfo=wdContext.<b>nodeEmailOutDetails()</b>.getNodeInfo().getAttribute(IPrivateMailOutboundView.IEmailOutDetailsElement.ATTACHMENT);
IWDModifiableBinaryType binaryType=(IWDModifiableBinaryType)attInfo.getModifiableSimpleType();

You have to say .. wdContext.node<nodename>().getNodeInfo()... and get that attribute.. u are getting node info of the context again..

Regards

Bharathwaj