In other words, you need to create a class that implements
javax.activation.DataSource. Use PipedInputStream/PipedOutputStream to just
forward the data between the input stream received from the web application
to the web services server

On Wed, May 19, 2010 at 4:20 PM, Jorge Medina
<[email protected]>wrote:

> 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