a) Is the server that you will call a web service able to receive SOAP
attachments? (MTOM) I am assuming it is.

b) If you use Axis2, your web services client is already able to RETRIEVE
attachments. The generated code will look like
                 TheResponse response =
yourService.serviceWithAttachments(parameter1, parameter2, parameter3)
                  InputStream  is =
response.getDataHandler().getInputStream();
                  ...here use the input stream to read the attachment ...

c) If you use Axis2 and you want to SEND attachments, you need to enable the
client code
             YourServiceStub stub = new YourServiceStub("http://your.url/";);
              Options options = stub._getServiceClient().getOptions();
              options.setProperty( Constants.Configuration.ENABLE_MTOM,
Constants.VALUE_TRUE);

 and then you will need to implement a DataSource and set it in your request
object.
Since you want to just forward the request, you may want to use
PipedInputStream/PipedOutputStream in your DataSource implementation



On Wed, May 19, 2010 at 4:07 PM, Vishwal Shah <[email protected]> wrote:

> Any suggestions ? Its very urgent ?
>
>
>
> On Wed, May 19, 2010 at 8:24 AM, Vishwal Shah <[email protected]>wrote:
>
>> Hi Martin,
>>
>> Thanks for the response.I checked and can't do the rest as rest is
>> disabled and for reasons it can't be enabled.
>> I am stuck right now on converting from InputStream to DataHandler itself
>> running out of memory. The Only Class that could handle that data was the
>> InputStreamDataSource that i had mentioned earlier in this thread , but that
>> throws the *End of Prolog WSTX *Exception.
>>
>> Is there any API that can help me convert a big InputStream into a
>> DataSource/DataHandler so that i can send it as an Attachment(MTOM) to the
>> service ?
>>
>>
>> Regards,
>> Vish
>>
>>
>>
>> On Fri, May 14, 2010 at 11:48 AM, Martin Gainty <[email protected]>wrote:
>>
>>>  //its possible this content type should be processed as REST .. check to
>>> see if your content type is
>>>      * 1. application/xml
>>>      * 2. application/x-www-form-urlencoded
>>>      * 3. multipart/form-data
>>>
>>> //also check the disableRest parameter in axis2.xml is disabled e.g. so
>>> you can use RESTprocessing
>>>     <!-- Following parameter will completely disable REST handling in
>>> Axis2-->
>>>     <parameter name="disableREST" locked="false">false</parameter>
>>>
>>> //here is the processing notice SOAP content-types are either
>>> application/soap+xml or text/xml
>>>         if (contentType != null) {
>>>             if (contentType.indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE)
>>> > -1) { //application/soap+xml
>>>                 soapVersion = VERSION_SOAP12;
>>>                 TransportUtils.processContentTypeForAction(contentType,
>>> msgContext);
>>>             } else if (contentType
>>>                     .indexOf(SOAP11Constants.SOAP_11_CONTENT_TYPE) > -1)
>>> {       //text/xml
>>>                 soapVersion = VERSION_SOAP11;
>>>             } else if (isRESTRequest(contentType)) {
>>>                 // If REST, construct a SOAP11 envelope to hold the rest
>>> message and
>>>                 // indicate that this is a REST message.
>>>                 soapVersion = VERSION_SOAP11;
>>>                 msgContext.setDoingREST(true);
>>>             }
>>>
>>> ?
>>> Martin Gainty
>>> ______________________________________________
>>> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>>>
>>>
>>> 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.
>>>
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------
>>> Date: Fri, 14 May 2010 10:17:21 -0700
>>>
>>> Subject: Re: InputStream to DataSource In Axis2
>>> From: [email protected]
>>> To: [email protected]
>>>
>>> Hi,
>>> My Application receives a Http Post from another web application which
>>> sends ~150mgs of data, i need to take that data and create a DataHandler
>>> (MTOM) and make a webservice call to another webapp. Its kind of pass
>>> through. i cannot copy that data onto any drive, it needs to create a
>>> DataHandler from the inputstream received from HttpRequest. I tried using
>>>
>>> import org.apache.axis2.builder.unknowncontent.InputStreamDataSource;
>>>
>>> InputStreamDataSource ds = new
>>> InputStreamDataSource(request.getInputStream());
>>> DataHandler dh = new DatHandler(ds);
>>>
>>> This doesn't seem to be working for me.
>>>
>>>
>>> Thanks,
>>> Vish
>>>
>>>
>>>
>>> On Thu, May 13, 2010 at 1:37 PM, Martin Gainty <[email protected]>wrote:
>>>
>>> the most prevelant input source is OMSource which extends
>>> org.xml.sax.InputSource defined here:
>>>
>>> package org.apache.axiom.om.impl.jaxp;
>>> import javax.xml.transform.sax.SAXSource;
>>> import org.apache.axiom.om.OMElement;
>>> import org.apache.axiom.om.impl.serialize.OMXMLReader;
>>> import org.xml.sax.InputSource;
>>>
>>> /**
>>>  * Implementation of {...@link javax.xml.transform.Source} for AXIOM.
>>>  * The implementation is based on {...@link SAXSource} and directly
>>> transforms an AXIOM
>>>  * tree into a stream of SAX events using {...@link OMXMLReader}.
>>>  * <p>
>>>  * Note that {...@link org.apache.axiom.om.OMDocType} nodes are not
>>> supported and will be
>>>  * silently skipped.
>>>  */
>>> public class OMSource extends SAXSource {
>>>     public OMSource(OMElement element) {
>>>         super(new OMXMLReader(element), new InputSource());
>>>     }
>>> }
>>>
>>> perhaps if you could display your definition(s) of InputStreamDatasource
>>> class
>>> we could better suggest an implementation which will accomodate your
>>> needs
>>>
>>> Martin
>>> ______________________________________________
>>> Verzicht und Vertraulichkeitanmerkung
>>>
>>> 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.
>>>
>>>
>>>
>>>
>>> ------------------------------
>>> Date: Thu, 13 May 2010 12:01:41 -0700
>>> Subject: Re: InputStream to DataSource In Axis2
>>> From: [email protected]
>>> To: [email protected]
>>>
>>>
>>> Anyone? Any help would be greatly appreciated. i cant write it to a
>>> drive, it has to be an in memory conversion.
>>>
>>>
>>> -Vish
>>>
>>> On Thu, May 13, 2010 at 8:56 AM, Vishwal Shah <[email protected]>wrote:
>>>
>>> Hi,
>>> Is there any Datasource inbuilt into Axis2 which can take
>>> Inputstream(Large data, almost 200 megs) ? I tried using
>>> InputStreamDataSource, but for some reason i am getting an error and i have
>>> been reading about issues using InputStreamDatasource. Also, i am not sure
>>> if it can handle large data (the MTOM way). Any help would be greatly
>>> appreciated
>>>
>>>
>>>
>>> Thanks,
>>> Vish
>>>
>>>
>>>
>>>  ------------------------------
>>> The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with
>>> Hotmail. Get 
>>> busy.<http://www.windowslive.com/campaign/thenewbusy?tile=multicalendar&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_5>
>>>
>>>
>>>
>>> ------------------------------
>>> Hotmail has tools for the New Busy. Search, chat and e-mail from your
>>> inbox. Learn 
>>> more.<http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_1>
>>>
>>
>>
>

Reply via email to