I used the example from http://ws.apache.org/axis2/1_1_1/mtom-guide.html#32
to get pdf file from server. My server looks like:

public OMElement getPDFDocument(OMElement root) {
        try {
            JAXBContext _jaxbContext =
JAXBContext.newInstance(DocumentRequest.class, Documents.class,
BillingRequest.class, BillingResponse.class);
            Unmarshaller _unmarshaller =_jaxbContext.createUnmarshaller();
            DocumentRequest _request = (DocumentRequest)
_unmarshaller.unmarshal(root.getXMLStreamReader());
            Documents _response = new Documents();
            int i = 0;
            MessageContext _ctx = MessageContext.getCurrentMessageContext();
            for(DocumentRequest.RequestParameters _param :
_request.getRequestParameters()){
                Documents.Document _doc = new Documents.Document();
                _response.getDocument().add(_doc);
                DataSource _ds = new FileDataSource(new
File("C:\\dev\\axis2-1.1.1\\out\\", "test_" + (i+1) + ".pdf"));
                String _contentId = String.valueOf(i+1);
                _ctx.addAttachment(_contentId, new DataHandler(_ds));
                _doc.setDocumentReference(_contentId);
            }

            Marshaller _marshaller = _jaxbContext.createMarshaller();
            SAXOMBuilder _builder = new SAXOMBuilder();
            _marshaller.marshal(_response, _builder);
            OMElement _root = _builder.getRootElement();
            return _root;
        } catch (JAXBException e) {
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }


My client is like:

EndpointReference _targetEPR = new
EndpointReference("http://localhost:8080/axis2/services/TestServer";);
        Options options = new Options();
        options.setTo(_targetEPR);
        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
        options.setProperty(Constants.Configuration.ENABLE_SWA,
Constants.VALUE_TRUE);
       
options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

        try {
            options.setAction("getPDFDocument");
            ServiceClient _sender = new ServiceClient();
            _sender.setOptions(options);

            OMElement _result = _sender.sendReceive(_root);

            OperationClient _mepClient =
_sender.createClient(ServiceClient.ANON_OUT_IN_OP);
            _mepClient.addMessageContext(new MessageContext());
            _mepClient.execute(true);
            MessageContext _ctx = _mepClient.getMessageContext("Out");
            DataHandler _dataHandler = _ctx.getAttachment("1");
            System.out.println(_ctx.getAttachmentMap().getContentIDSet());
            FileOutputStream _stream = new FileOutputStream(new
File("in/test_1.pdf"));
            _dataHandler.writeTo(_stream);
            _stream.close();
                   
            System.out.println(_result);
        } catch (AxisFault axisFault) {
            axisFault.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();  //To change body of catch statement use
File | Settings | File Templates.
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use
File | Settings | File Templates.
        }

When I run it I get exception at server:
Mar 5, 2007 2:40:04 PM
org.apache.axis2.transport.http.server.DefaultHttpService
Processor logIOException
WARNING: Chunked stream ended unexpectedly
org.apache.http.io.MalformedChunkCodingException: Chunked stream ended
unexpectedly
        at
org.apache.http.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:273)
        at
org.apache.http.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:234)
        at
org.apache.http.io.ChunkedInputStream.read(ChunkedInputStream.java:206)
        at
org.apache.http.io.ChunkedInputStream.read(ChunkedInputStream.java:226)
        at
org.apache.http.io.ChunkedInputStream.exhaustInputStream(ChunkedInputStream.java:339)
        at
org.apache.http.io.ChunkedInputStream.close(ChunkedInputStream.java:312)
        at
org.apache.http.entity.BasicHttpEntity.consumeContent(BasicHttpEntity.java:140)
        at
org.apache.http.protocol.HttpService.handleRequest(HttpService.java:129)

And exception at client:
Exception in thread "main" java.lang.NullPointerException
        at
org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.handleOMOutput(SOAPOverHTTPSender.java:183)
        at
org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.writeRequest(SOAPOverHTTPSender.java:232)
        at
org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:495)
        at
org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1973)
        at
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
        at
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
        at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
        at
org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:541)
        at
org.apache.axis2.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:119)
        at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:335)
        at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:204)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:674)
        at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:237)
        at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)
        at Main.main(Main.java:110)

Please, tell me, what I'm doing wrong...
-- 
View this message in context: 
http://www.nabble.com/axs2-and-attachments-tf3348698.html#a9311000
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to