You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Yadav, Ashok" <AY...@carreker.com> on 2005/03/21 21:08:31 UTC

Resource has been deleted Exception while Processing Attachments

Hi All
I am processing incomming attachments in a function which is called from the
service. It gives correct No of attachment count but when I try to get
attachment in an InputStream it reports "Resource has been deleted"
Exception. If I implement this in Service it works fine but outside service
it doesn't work. Also I am using WSAD 5.1.1 Any help?? Here is the code
Thanks
Ashok

void processAttachments(MessageContext _requestMessageContext)
	{
Message _requestMessage = _requestMessageContext.getRequestMessage();
Attachments _requestMessageAttachments=_requestMessage.getAttachmentsImpl();
try
{
if(!(null == _requestMessageAttachments))
{
int _requestAttachmentCount=
_requestMessageAttachments.getAttachmentCount();
System.out.println("No of Attachments ["+ _requestAttachmentCount+" ]");
AttachmentPart _requestAttachmentPart[]= new
AttachmentPart[_requestAttachmentCount];
Iterator _requestAttachmentIterator =
_requestMessageAttachments.getAttachments().iterator();
_requestAttachmentCount=0;
InputStream _attachmentInputStream=null;
while(_requestAttachmentIterator.hasNext())
{
_requestAttachmentPart[_requestAttachmentCount]=
(AttachmentPart)_requestAttachmentIterator.next();
String id = _requestAttachmentPart[_requestAttachmentCount].getContentId();
String type =
_requestAttachmentPart[_requestAttachmentCount].getContentType();
System.out.println("Id for
Attachment"+_requestAttachmentPart[_requestAttachmentCount]+"  "+id);
DataHandler _attachmentDatahandler =
_requestAttachmentPart[_requestAttachmentCount].getDataHandler();
_attachmentInputStream = _attachmentDatahandler.getInputStream();
int size = _attachmentInputStream.available();
System.out.println("Size for
Attachment"+_requestAttachmentPart[_requestAttachmentCount]+"  "+size);
byte[] _bytes = new byte[size];
int _readbufferSize;
OutputStream _attachemnetOutputStream= new
FileOutputStream("c:\\temp\\Attachmentr"+_requestAttachmentCount+".tiff");
while ((_readbufferSize = _attachmentInputStream.read(_bytes)) != -1)
{
_attachemnetOutputStream.write(_bytes, 0, _readbufferSize);
}
_attachemnetOutputStream.close();
_requestAttachmentCount++;
}
}
}
catch(Exception _ex)
{
System.out.println("Exception ::"+ _ex.getLocalizedMessage());
}
}