This worked for me, but caveats:
        haven't tested in awhile
        there may be better ways to do this

====
        /**
         * @return DataHandler for converted file
         */
        public DataHandler getConversionFromExtraction(String outputFormat,
String extractionUrlString, String fileName) 
        throws ServiceException {
                
                int numColumns;
                String[] columnNames;
                String[] columnDataTypes;
                String[] dataElements;
                
                try {
                        URL url = new URL(extractionUrlString);
                        URLConnection urlConnection = url.openConnection();
                        // set up connection to request gzip compression
                        urlConnection.setRequestProperty("Accept-Encoding", "gzip");
                        urlConnection.connect();
                        InputStream inputStream = urlConnection.getInputStream();
                        if ("gzip".equals(urlConnection.getContentEncoding())) {
                                inputStream = new GZIPInputStream(inputStream);
                        }
                        ExtractionParser extractionParser = new
ExtractionParser(inputStream);
                        inputStream.close();
                        String errorMessage = extractionParser.getErrorMessage();
                        if (errorMessage != null) {
                                // byte data[] = errorMessage.getBytes();
                                // DataSource dataSource = new 
ByteArrayDataSource(data,
"text/plain");
                                // return new DataHandler(dataSource);
                                return new DataHandler(errorMessage, "text/plain");
                        }
                        numColumns = extractionParser.getNumColumns();
                        columnNames = extractionParser.getColumnNames();
                        columnDataTypes = extractionParser.getColumnDataTypes();
                        dataElements = extractionParser.getDataElements();
                } catch(IOException ioe) {
                        // byte data[] = ioe.toString().getBytes();
                        // DataSource dataSource = new ByteArrayDataSource(data,
"text/plain");
                        // return new DataHandler(dataSource);
                        return new DataHandler(ioe.toString(), "text/plain");
                }
                DataHandler dataHandler = getConversion(outputFormat, numColumns, 
                                                columnNames, columnDataTypes, 
dataElements, fileName);
                return dataHandler;
        }
====
and the proxy ...
====
        
        public DataHandler getConversionFromExtraction(String outputFormat,
String extractionUrlString, String fileName)
        throws ServiceException, IOException {
                
                DataHandler dataHandler;
                try {
                        Service service = new Service();
                        Call call = (Call) service.createCall();
                        call.setTargetEndpointAddress(serviceURL);
                        call.setOperationName(new QName("urn:conversion",
"getConversionFromExtraction"));
                        call.addParameter("outputFormat",
org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
                        call.addParameter("extractionUrlString",
org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
                        call.addParameter("fileName", 
org.apache.axis.Constants.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
                        call.setReturnClass(javax.activation.DataHandler.class);
                        dataHandler = (DataHandler) call.invoke(
                        new Object[] { outputFormat, extractionUrlString, fileName } );
                } catch (Exception e) {
                        throw new ServiceException(e.toString());
                }
                return dataHandler;
        }










On Thu, 2002-12-19 at 09:47, Shrotriya, Sumit wrote:
> Hi All,
>  
>  I need to pass a DataHandler as a Parameter and return a DataHandler
> from a service over Axis....any quick start pointers or ideas?
>  
> Thanks,
> Sumit
>          
-- 
Heitzso <[EMAIL PROTECTED]>
MetaMedia, Inc.

Reply via email to