Matthias, I'm pretty sure DIME is not supported by Axiom.
Andreas On Thu, May 14, 2009 at 17:16, <matthias.gai...@t-systems.com> wrote: > Hi Martin, > > > > I have now this code which works fine for me for receiving SwA attachments. > Feel free to include this code into the mtom-user-guide (which should maybe > named attachment-user-guide). > > List<File> attList = new ArrayList<File>(); > > MessageContext mctx = MessageContext.getCurrentMessageContext(); > > Attachments attachs = mctx.getAttachmentMap(); > > Set<String> cids = attachs.getContentIDSet(); > > if (cids != null && cids.size() > 1) { > > String attType = attachs.getAttachmentSpecType(); > > if (attType.equals(MTOMConstants.SWA_TYPE) || > attType.equals(MTOMConstants.SWA_TYPE_12)) { > > String soapCid = attachs.getSOAPPartContentID(); > > File file; > > for (String cid : cids) { > > if (!cid.equals(soapCid)) { > > file = new File(UUID.randomUUID().toString()); //the cid might > not be a good name to save the file. > > FileOutputStream fileOutputStream = new FileOutputStream(file); > > mctx.getAttachment(cid).writeTo(fileOutputStream); > > fileOutputStream.flush(); > > fileOutputStream.close(); > > attList.add(file); > > } > > } > > } > > } > > > > I assume Axis2 sends the attachments as mime attachments, if they are sent > via SwA. This code also worked for me for an Axis1 1.4 client uploading a > file as a MIME attachment to my Axis2 Service. DIME Attachments can not be > received so far. I’ll have a look what I still have to do. > > > > Matthias. > > > > > > Von: Martin Gainty [mailto:mgai...@hotmail.com] > Gesendet: Donnerstag, 14. Mai 2009 15:35 > An: axis-user@ws.apache.org > Betreff: RE: AW: Receiving swa attachments > > > > Matthias > i would suggest editting mtom-user-guide to demonstrate actual usage for > axis2-1.4.1 specifically > > public class SwA { > > private OperationContext operationContext; > > > > public SwA() { > > } > > > > public void setOperationContext(OperationContext oc) throws AxisFault { > > operationContext = oc; > > } > > > > public void uploadAttachment(OMElement omEle) throws AxisFault { > > OMElement child = (OMElement) omEle.getFirstOMChild(); > > OMAttribute attr = child.getAttribute(new QName("href")); > > > > //Content ID processing > > String contentID = attr.getAttributeValue(); > > contentID = contentID.trim(); > > if (contentID.substring(0, 3).equalsIgnoreCase("cid")) { > > contentID = contentID.substring(4); > > } > > //contentId of cid is assumed > > Attachments attachment = (Attachments) > (operationContext.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE)).getAttachmentMap(); > > // DataHandler dataHandler = attachment.getDataHandler(contentID); > > java.util.Iterator iter; > > try > > { > > iter=attachment.getAttachments().iterator(); > > } > > catch(AxisFault axis_fault) > > { > > log.debug("AxisFault produced for > attachment.getAttachments().iterator()"); > > } > > String[] attachmentIDs; > > int attachementCtr=0; > > while(iter.hasNext() > > { > > attachmentIDs[attachmentCtr++]= iter.next(); > > } > > } > > } > > public static final java.lang.String > > ATTACHMENT_ENCAPSULATION_FORMAT_DIME > > "axis.attachment.style.dime" > > public static final java.lang.String > > ATTACHMENT_ENCAPSULATION_FORMAT_MIME > > "axis.attachment.style.mime" > > public static final java.lang.String > > ATTACHMENT_ENCAPSULATION_FORMAT_MTOM > > "axis.attachment.style.mtom" > > this only covers attachment style of 'mtom' > would need to refactor for both mime and dime attachment styles > > suggestions? > Martin Gainty > ______________________________________________ > Disclaimer and Confidentiality/Verzicht und Vertraulichkeitanmerkung/Note de > déni et de confidentialité > > This message is confidential. If you should not be the intended receiver, > then we ask politely to report. Each unauthorized forwarding or > manufacturing of a copy is inadmissible. This message serves only for the > exchange of information and has no legal binding effect. Due to the easy > manipulation of emails we cannot take responsibility over the the contents. > > Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene > Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte > Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht > dient lediglich dem Austausch von Informationen und entfaltet keine > rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von > E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. > > Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le > destinataire prévu, nous te demandons avec bonté que pour satisfaire > informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie > de ceci est interdite. Ce message sert à l'information seulement et n'aura > pas n'importe quel effet légalement obligatoire. Étant donné que les email > peuvent facilement être sujets à la manipulation, nous ne pouvons accepter > aucune responsabilité pour le contenu fourni. > > > > ________________________________ > > Subject: AW: Receiving swa attachments > Date: Thu, 14 May 2009 09:24:31 +0200 > From: matthias.gai...@t-systems.com > To: axis-user@ws.apache.org > > Hi Chinmoy, > > > > thanks for your answer. It gave me a hint into the right direction. Now it > is working. > > > > Yes, I did enable the SwA property, but it is only necessary to enable it on > the client side, not on the server side as other tutorials mention as well. > > My problem was that I tried to get the content ids via the > getContentIDList() method. This method only returns the content ids which > have been parsed already. If I take the method you mention > getAllContentIDs() or getContentIDSet(), then Axis parses the other > attachments and returns a complete list of the content ids. > > > > @Axis2-Team: Please reflect this behavior in the javadoc that only the > parsed content ids are returned by the getContentIDList(). > > > > Maybe I can help some other people with the same problem. J > > > > Matthias. > > > > Von: Chinmoy Chakraborty [mailto:cch...@gmail.com] > Gesendet: Mittwoch, 13. Mai 2009 17:43 > An: axis-user@ws.apache.org > Betreff: Re: Receiving swa attachments > > > > Hi Matthias, > > > > You need to set 'enableSwA' property to true in client and server side in > order to work with SwA. I am assuming that you have done this. I tried with > Axis2 1.4 and it works fine. You can try following code sample while > receving the SwA attachment in the client side: > > > > ............................... > > mepClient.execute(true); > > MessageContext response = > mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE); > Attachments attachments = response.getAttachmentMap(); > if (attachments == null) { > return "No attachment"; > } > String[] attachmentIDs = attachments.getAllContentIDs(); > for(int i = 0; i < attachmentIDs.length; i++){ > if(!attachments.getSOAPPartContentID().equals(attachmentIDs[i])){ > return attachments.getDataHandler(attachmentIDs[i]); > } > } > > > > > > Chinmoy > > On Wed, May 13, 2009 at 8:15 PM, <matthias.gai...@t-systems.com> wrote: > > Hi group, > > > > I am getting a bit frustrated with swa attachments. For reason of > compatibility I have to support them. I am trying to upload a file with swa > to a service. I can see via tcpmon that my file is being sent, but on the > server side I can’t see the file in the attachments map. It is just not > there. I have compared my coe with the swa example and also changed the swa > example with my code, but I had no success. > > > > The code on the server side looks like this: > > MessageContext mctx = MessageContext.getCurrentMessageContext(); > > Attachments attachs = mctx.getAttachmentMap(); > > List<String> cids = attachs.getContentIDList(); > > String soapCid = attachs.getSOAPPartContentID(); > > > > String url = "not stored"; > > for (String cid : cids) { > > if (!cid.equals(soapCid)) { > > url = writeAttachmentToDisk(mctx.getAttachment(cid), cid); > > } > > } > > > > I filter out the soap part which is also listed in the attachments, but the > list cids always only contains the soapPartContentID. > > > > In the articles on ws02 they always mention that you don’t have to specify a > special option to receive swa attachments. I am probably missing sth. out. > Can anybody help me here? > > > > Thanks in advance, > > Matthias. > > > > > > ________________________________ > > Hotmail® goes with you. Get it on your BlackBerry or iPhone.