Hi,
I cannot confirm this, but my use case is slightly different. I have a
server, that always sends exactly one attachment. During testing we have
setup a cluster of multiple machines to access this server
simultaneously and request binary data (which was sent as an
attachment). The attachmentCount was always 1, as expected.
Regards,
Tom
Axis User wrote:
Hi,
Further investigation has shown that the attachments are not in fact
lost but appear in a different SOAP message! e.g. if 30 clients send
an attachment one message will return getAttachmentCount() == 30 and
the other 29 messages return getAttachmentCount() == 0.
I have found this problem also to occur with reasonably small
attachments (i.e. 4k)
This looks like a bug - can anyone comment?
M
On 8/1/05, Axis User <[EMAIL PROTECTED]> wrote:
Hi Tom,
Thanks for your reply. Further to my last mail I should say that
sending large attachments sequentially works fine. The problem for me
arises when I have multiple clients sending in parallel (i.e.
concurrent invocation of the service method) - sometimes
getAttachmentCount() returns 0 other times it works fine (with your
code fragment it becomes a NoSuchElement exception thrown
occasionally)
Have you encountered or tested this situation before?
Does anyone know if Axis supports writing multiple attachments at the same time?
Thanks,
Michael
On 8/1/05, Tom Ziemer <[EMAIL PROTECTED]> wrote:
Hi,
try this:
DataHandler dh = null;
Message m = context.getCurrentMessage();
logger.info("[client]: Found attachments: "+m.countAttachments());
Iterator it = m.getAttachments();
while(it.hasNext())
{
AttachmentPart ap = (AttachmentPart)it.next();
dh = ap.getDataHandler();
...
}
I am using Axis 1.3 (CVS) and can send (Server->Client) large files (up
to 1.2GB) without a problem.
Hope this helps,
Regards,
Tom
Axis User wrote:
Hi,
First some info...
Platform: Axis 1.2.1, Java 1.5.0_04-b05, Linux 2.6.11.4-20a-default
Aim: to send a zip file attached to a SOAP message and save it to a
directory. Zip files will on average be around 50Mb.
Code:
//On the client side I add attachments as below:
DataHandler handler = new DataHandler(new FileDataSource(file));
stub.addAttachment(handler);
//server side retrieval
MessageContext msgContext = MessageContext.getCurrentContext();
Message requestMessage = msgContext.getRequestMessage();
int numAttachments = requestMessage.getAttachmentsImpl().getAttachmentCount();
Problem:
The problem seems to be to me that my service method is being invoked
before the entire attachment has been transferred hence numAttachments
== 0 even though the client always sends an attachment. Is there a way
to determine that the entire message has been received before querying
the number of attachments? In this case the attachments are ~45mb
Thanks,
Mike