Hi,

sorry this is a newbie question. I wanted to get the source

code from Thomas Dorner to work(sending a gif file as an 

attachment back to the caller of a web service). But I'm stuck 

with the client code. I did the following



0. Ran Java2WSDL on AXIS_HOME%/samples/userguide/example6. This

created my wsdl file. 



1. Ran WSDL2Java to create the java classes. Added Thomas's source code to the 
%AXIS_HOME%/samples/userguide/example6/ WidgetPriceSoapBindingImpl.java file.  



2. Deployed the webservice.



3. I can run the Main test program, no errors.  I ran the

test program with tcpmon and the response does seems to contain the gif file 
attachment. Now I want to read the attachment. 



How can I get the attachment?



Object[] attachments = binding.getAttachments();

Where do I define/get this getAttachments() api?



Any help greatly appreciated.



-dwong

_______________________________________________

/*

 * The Apache Software License, Version 1.1

 *

 *

 * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights

 * reserved.

 *

 * Redistribution and use in source and binary forms, with or without

 * modification, are permitted provided that the following conditions

 * are met:

 *

 * 1. Redistributions of source code must retain the above copyright

 *    notice, this list of conditions and the following disclaimer.

 *

 * 2. Redistributions in binary form must reproduce the above copyright

 *    notice, this list of conditions and the following disclaimer in

 *    the documentation and/or other materials provided with the

 *    distribution.

 *

 * 3. The end-user documentation included with the redistribution,

 *    if any, must include the following acknowledgment:

 *       "This product includes software developed by the

 *        Apache Software Foundation (http://www.apache.org/)."

 *    Alternately, this acknowledgment may appear in the software itself,

 *    if and wherever such third-party acknowledgments normally appear.

 *

 * 4. The names "Axis" and "Apache Software Foundation" must

 *    not be used to endorse or promote products derived from this

 *    software without prior written permission. For written

 *    permission, please contact [EMAIL PROTECTED]

 *

 * 5. Products derived from this software may not be called "Apache",

 *    nor may "Apache" appear in their name, without prior written

 *    permission of the Apache Software Foundation.

 *

 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

 * SUCH DAMAGE.

 * ====================================================================

 *

 * This software consists of voluntary contributions made by many

 * individuals on behalf of the Apache Software Foundation.  For more

 * information on the Apache Software Foundation, please see

 * <http://www.apache.org/>.

 */



/**

 * WidgetPriceSoapBindingImpl.java

 *

 * This file is the SOAP implementation of the WidgetPrice Web Service

 */



package samples.userguide.example6;



import java.util.HashMap;

import org.apache.axis.*;

import javax.activation.*;

import org.apache.axis.attachments.AttachmentPart;



public class WidgetPriceSoapBindingImpl implements 
samples.userguide.example6.WidgetPrice {

    HashMap table = new HashMap();

    public void setWidgetPrice(java.lang.String name, java.lang.String price) throws 
java.rmi.RemoteException {

        table.put(name, price);



    }

    public java.lang.String getWidgetPrice(java.lang.String name) throws 
java.rmi.RemoteException {



                String fileName = "C:\\axis-1_1\\docs\\images\\ant_logo_large.gif";



                //explicitly set format to DIME, default is MIME

                Message rspmsg = 
AxisEngine.getCurrentMessageContext().getResponseMessage();



                
rspmsg.getAttachmentsImpl().setSendType(org.apache.axis.attachments.Attachments.SEND_TYPE_DIME);



                DataHandler dh = new DataHandler(new FileDataSource(fileName));

                if (dh == null ) System.err.println("dhSource is null");



                AttachmentPart ap = new AttachmentPart(dh);

                ap.setContentId("Filename1");



                MessageContext context=MessageContext.getCurrentContext();

                Message responseMessage=context.getResponseMessage();



                responseMessage.addAttachmentPart(ap);



        return (String) table.get(name);

    }

}


/*

 * The Apache Software License, Version 1.1

 *

 *

 * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights

 * reserved.

 *

 * Redistribution and use in source and binary forms, with or without

 * modification, are permitted provided that the following conditions

 * are met:

 *

 * 1. Redistributions of source code must retain the above copyright

 *    notice, this list of conditions and the following disclaimer.

 *

 * 2. Redistributions in binary form must reproduce the above copyright

 *    notice, this list of conditions and the following disclaimer in

 *    the documentation and/or other materials provided with the

 *    distribution.

 *

 * 3. The end-user documentation included with the redistribution,

 *    if any, must include the following acknowledgment:

 *       "This product includes software developed by the

 *        Apache Software Foundation (http://www.apache.org/)."

 *    Alternately, this acknowledgment may appear in the software itself,

 *    if and wherever such third-party acknowledgments normally appear.

 *

 * 4. The names "Axis" and "Apache Software Foundation" must

 *    not be used to endorse or promote products derived from this

 *    software without prior written permission. For written

 *    permission, please contact [EMAIL PROTECTED]

 *

 * 5. Products derived from this software may not be called "Apache",

 *    nor may "Apache" appear in their name, without prior written

 *    permission of the Apache Software Foundation.

 *

 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

 * SUCH DAMAGE.

 * ====================================================================

 *

 * This software consists of voluntary contributions made by many

 * individuals on behalf of the Apache Software Foundation.  For more

 * information on the Apache Software Foundation, please see

 * <http://www.apache.org/>.

 */



/**

 * Main.java

 *

 * This file was auto-generated from WSDL

 * by the Apache Axis Wsdl2java emitter.

 */



package samples.userguide.example6;



import java.net.URL;

import org.apache.axis.*;

import javax.activation.*;

import org.apache.axis.attachments.AttachmentPart;

import java.io.*;



public class Main {



    public static void main (String[] args) throws Exception {

                URL serviceURL = new 
URL("http://localhost:9090/axis/services/WidgetPrice";);

        samples.userguide.example6.WidgetPrice binding = new 
WidgetPriceServiceLocator().getWidgetPrice(serviceURL);

        ((WidgetPriceSoapBindingStub)binding).setMaintainSession(true);

        try {

            ((WidgetPriceSoapBindingStub) binding).setWidgetPrice("FOO", "$1.00");

        } catch (java.rmi.RemoteException re) {

            //throw new junit.framework.AssertionFailedError("Remote Exception caught: 
" + re );

        }

        try {

            java.lang.String value = null;

            value = binding.getWidgetPrice("FOO");

            if (value == null ||

                !value.equals("$1.00"))

                System.out.println("Wrong Price" + value);





               /* Object[] attachments = binding.getAttachments();

                                AttachmentPart attachPart = (AttachmentPart) 
attachments[0];



                                DataHandler arrow = attachPart.getDataHandler();



                                               File myFile1 = new File("C:\\temp\\" +

                                attachPart.getContentId() + ".gif");

                                               FileOutputStream myFOS1 = new

                                FileOutputStream(myFile1);

                                               arrow.writeTo(myFOS1);







                                               
System.out.println(attachPart.getContentId());

*/



        } catch (java.rmi.RemoteException re) {

            //throw new junit.framework.AssertionFailedError("Remote Exception caught: 
" + re );

        }

    }

}




Reply via email to