KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > webservice > jbws801 > LargeAttachmentImpl


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.test.webservice.jbws801;
23
24 import java.io.InputStream JavaDoc;
25 import java.rmi.RemoteException JavaDoc;
26 import java.util.Iterator JavaDoc;
27
28 import javax.xml.rpc.ServiceException JavaDoc;
29 import javax.xml.rpc.handler.soap.SOAPMessageContext JavaDoc;
30 import javax.xml.rpc.server.ServiceLifecycle JavaDoc;
31 import javax.xml.rpc.server.ServletEndpointContext JavaDoc;
32 import javax.xml.soap.AttachmentPart JavaDoc;
33 import javax.xml.soap.SOAPMessage JavaDoc;
34
35 public class LargeAttachmentImpl implements LargeAttachment, ServiceLifecycle JavaDoc
36 {
37    private ServletEndpointContext JavaDoc context;
38
39    public long sendLargeFile() throws RemoteException JavaDoc
40    {
41       long count = 0;
42       SOAPMessage JavaDoc message = ((SOAPMessageContext JavaDoc) context.getMessageContext()).getMessage();
43       try
44       {
45          byte[] buffer = new byte[1024];
46          for (Iterator JavaDoc iter = message.getAttachments(); iter.hasNext(); )
47          {
48             AttachmentPart JavaDoc part = (AttachmentPart JavaDoc) iter.next();
49
50             InputStream JavaDoc inputStream = part.getDataHandler().getInputStream();
51             int read = 0;
52             do
53             {
54                count += read;
55                read = inputStream.read(buffer);
56             }
57             while (read != -1);
58          }
59       }
60       catch (Exception JavaDoc e)
61       {
62          throw new RemoteException JavaDoc(e.getMessage());
63       }
64
65       System.out.println("[Size = " + count + "]");
66       return count;
67    }
68
69
70    // ServiceLifecycle *******************************************************************************************
71

72    public void init(Object JavaDoc context) throws ServiceException JavaDoc
73    {
74       this.context = (ServletEndpointContext JavaDoc)context;
75    }
76
77    public void destroy()
78    {
79       this.context = null;
80    }
81 }
82
Popular Tags