Have you had a look at the Slide project?

Regards

Jim.
----- Original Message ----- 
From: "James CE Johnson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 18, 2004 5:21 PM
Subject: Can someone help a newbie help with attachments?


> Hi,
>
> We're working on a "file archive" service. This service will need to let
> its clients upload files for archiving and later retrive them. (Ok, its
> more complex than that but that's the relevant bit...)
>
> What I have thus far is working OK but I would appreciate some more
> experienced eyes on it and their opinions of my approach. I'm always
> anxious to hear a Better Way.
>
> I started with this interface:
>
> public interface EchoService
> {
>     public void echo();
> }
>
> That was given to java2wsdl and the resulting wsdl was then given to
> wsdl2java. I wrote the following EchoClient to use the generated service
> locator and binding stub:
>
> public class EchoClient
> {
>     private static Logger log = Logger.getLogger(EchoClient.class);
>
>     public static void main(String [] args)
>     {
>         try
>         {
>             System.err.println("Sending /etc/profile");
>             EchoServiceSoapBindingStub c = (EchoServiceSoapBindingStub)
> (new EchoServiceServiceLocator().getEchoService());
>             DataHandler dh = new DataHandler(new
> FileDataSource("/etc/profile"));
>             c.addAttachment(dh);
>             c.echo();
>             Object [] attachments = c.getAttachments();
>             System.err.println("Hello World");
>             for(int i = 0 ; i < attachments.length ; ++i)
>             {
>                 AttachmentPart part = (AttachmentPart) attachments[i];
>                 System.err.println("getSize = " + part.getSize());
>                 System.err.println("getAttachmentFile = " +
> part.getAttachmentFile());
>                 System.err.println("getContentLocation = " +
> part.getContentLocation());
>
>                 dh = part.getDataHandler();
>                 System.err.println("dh.getName() = " + dh.getName());
>
>                 // Create a File using dh.getName() and do whatever with
> its contents.
>                 // Then delete that file so that we don't fillup our
> /tmp space.
>             }
>         }
>         catch(Exception e)
>         {
>             log.error("oops", e);
>         }
>     }
> }
>
>
> I then implemented this simple server object to handle the 'echo'
requests:
>
> public class EchoService
> {
>     private static Logger log = Logger.getLogger(EchoService.class);
>
>     public void echo()
>     {
>         log.info("Hello World");
>
>         try
>         {
>             MessageContext msgContext =
MessageContext.getCurrentContext();
>             Message reqMsg = msgContext.getRequestMessage();
>             Attachments messageAttachments = reqMsg.getAttachmentsImpl();
>             if (messageAttachments == null)
>             {
>                 log.info("No Attachments");
>                 return;
>             }
>
>             log.info(
>                 messageAttachments.getAttachmentCount() + " attachments");
>             int attachmentCount = messageAttachments.getAttachmentCount();
>             AttachmentPart attachments[] =
>                 new AttachmentPart[attachmentCount];
>             Iterator it = messageAttachments.getAttachments().iterator();
>             int count = 0;
>             while (it.hasNext())
>             {
>                 AttachmentPart part = (AttachmentPart) it.next();
>                 log.info("getSize = " + part.getSize());
>                 log.info("getAttachmentFile = " +
part.getAttachmentFile());
>                 log.info("getContentLocation = " +
> part.getContentLocation());
>
>                 DataHandler dh = part.getDataHandler();
>                 log.info("dh.getName() = " + dh.getName());
>
>                 // Create a File using dh.getName() and do whatever with
> its contents.
>                 // Then delete that file so that we don't fillup our
> /tmp space.
>             }
>
>             Message resp = msgContext.getResponseMessage();
>             log.info("Response message is " + resp);
>             AttachmentPart part = (AttachmentPart)
> resp.createAttachmentPart();
>             part.setContent("I like cheese", "text/plain");
>             resp.addAttachmentPart(part);
>
>         }
>         catch (Exception e)
>         {
>             log.error(e);
>         }
>     }
> }
>
> Thanks in advance!
> James
>
>

Reply via email to