File Mapping from Servlet to client

Hi,
I want help in Servlets....
My problem is, i am having one servlet and one client(Html) and one imageFile. My servlet knows the filePath, now it has to process the filePath so that the imageFile is displayed in Html. Now, the issue is in servlet is there any other procedure other than streaming the file in to ServletoutputStream??? I know that the following code solves my problem,
File f = new File("F:\\Images\\2\\3\\2004\\12282004\\08\\1.jpg");
byte[] imageData = new byte[(int) f.length()];
FileInputStream fis = new FileInputStream(f);
fis.read(imageData);
response.setContentType("image/jpeg");
ServletOutputStream out = response.getOutputStream();
out.write(imageData);
But what I want to know is, instead of Streaming the file into byteArray and set into ServletOutputStream, is there any other alternative???
Thanks in advance
Regards,
Rama Sarma Vemuri L S K
Mobile: +91-9885584568

Hi,
If we stream and send, it ll be taking much time in case of bigger images. So, I am trying like this. What I do os, in my Img tag, i ll call servlet which fetches me the URL of image and I ll the display the same. This is what I want to achieve. Can you help me out???

Similar Messages

  • JSP : latest  JSTL, File Upload from web form Client to Server Question!

    I understand that within a JSP, It is possible to read a file from the Client by opening a Stream somehow.
    How do I code, within jsp/servlet (non tag) java code inside <% %>
    blocks, WITHOUT openening a new connection to the URL, an InputStream from a client web browser form, from a file upload coded using
    <input type="file" name="file1"/> ?
    I have previously achieved this quite simply with a FileInputStream
    with the previous version of JSTL.
    How may I do this with the latest version of JSTL, with this index.jsp?
    -with a simple text file.
    -with a Binary file (with DataInputStream)?
    <%--
    Document : index
    Created on : 27/01/2009, 3:08:32 PM
    Author : Zachary Mitchell
    --%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    </head>
    <body>
    <h1 align="center">Hello World!</h1>
    <form name="form1" method ="POST" >
    <table align="center">
    <tr>
    <td>
    <input name="file1" type="file" align="center"></input>
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" value="submit" action="index.jsp" ></input>
    </td>
    </tr>
    </table>
    </form>
    <!--*********************************************************************** -->
    <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
    <%@page import = "java.io.*" %>
    <c:if test="${pageContext.request.method=='POST'}">
    <%
    File fileName = new File(request.getParameter("file1"));
    out.println(fileName.toString());
    FileInputStream stream = new FileInputStream(fileName);
    out.println(stream.toString());
    %>
    </c:if>
    <!--*********************************************************************** -->
    </body>
    </html>

    If I have:
    <!-- ***********************************************************************************-->
    <form name="form1" method="POST" enctype="multipart/form-data">
    <input name="file1" type="file"/>
    <input name="submit1" type="submit" value="Submit" action="index.jsp"/>
    </form>
    <!-- ***********************************************************************************-->
    and run this in an index.jsp, use browse to select my text file, and click SUBMIT.
    I can use:
    InputStreamReader reader = new InputStreamReader(new DataInputStream(request.getInputStream()))
    BufferedReader bufferedReader = new BufferedReader(reader);
    bufferedReader.readLine();...
    However, these is some HTML/POST related content around what multiple readLine();
    calls return.
    Is there an easy way, like using "${param.file1}",
    aside from [http://commons.apache.org/fileupload/|http://commons.apache.org/fileupload/],
    maybe using servlet style code, to get the File contents from a remote Client,
    to the remote Server servlet engine, AVOIDING ANY SUPERFLUOUS CONTENT,
    using version 1.12 of the JSTL, JSP 2.0,Tomcat 6?
    Just politely, yes, no, and how?
    Edited by: Zac1234 on Jan 29, 2009 3:27 AM
    Edited by: Zac1234 on Feb 1, 2009 8:29 PM

  • Transfering file from Servlet to Client

    Hello Everyone,
    I have been trying to transfer a file from the Server to the Client. So far I could only make it work in the other way around, from Client to the Server and below it is this code.
    Client.java
    public void transferFile()
              URLConnection con;               
            try
                   File sourceFile = new File("upArrow.png");
                String destPath = "c:\\Temp";
                String fileName = sourceFile.getPath();
                destPath += File.separator + sourceFile.getName();
                FileInputStream fin = new FileInputStream(sourceFile);
                URL url = new URL("http://"+cref.host+":"+cref.port+"/ewb/soldlogs?mode="+URLEncoder.encode("transferFile")+"&name=" + URLEncoder.encode(fileName) + "&path=" + URLEncoder.encode(destPath));
                con = url.openConnection();
        //        con.setRequestProperty("REQUEST_METHOD", "POST");
                con.setDoInput(true);
                con.setDoOutput(true);
                con.setUseCaches(true);
                con.setRequestProperty("Content-Type", "multipart-formdata");
                DataOutputStream dataOut = new DataOutputStream(con.getOutputStream());
             //   int c = 30720;
              //     int c = Integer.MAX_VALUE/2;
                   int c = 35720;
                byte b[] = new byte[c];
                for(int i = fin.read(b, 0, c); i >= 0; i = fin.read(b, 0, c))
                    dataOut.write(b, 0, i);
                   dataOut.flush();
                dataOut.close();
                fin.close();
                InputStream input = con.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(input));
                String strRes = null;
                while((strRes = br.readLine()) != null)
                    System.out.println(strRes);
                input.close();
                br.close();
            catch(Exception e)
                System.out.println("Error: " + e.toString());
            finally
                con = null;
         }Server.java - Servlet
    else if(mode.equalsIgnoreCase("transferFile")) {
                   String fileName = req.getParameter("name");
                   String destIP = req.getParameter("path");
                   attachPath = destIP;
                   res.setContentType("text/plain");
                   System.out.println("File : " + fileName + " is ready to transfer to " + destIP);
                   File destFile = new File(destIP);
                   DataInputStream dataIn = new DataInputStream(req.getInputStream());
                   BufferedOutputStream buffOut = new BufferedOutputStream(new FileOutputStream(destFile));
                   int c = 30720;
                   byte b[] = new byte[c];
                   try
                        for(int j = dataIn.read(b, 0, c); j >= 0; j = dataIn.read(b, j, c))
                             buffOut.write(b, 0, j);
                             c += j;
                        catch(Exception e)
                             System.out.println("Error in Servlet : " + e.getMessage());
                      dataIn.close();
                      buffOut.close();                 
                        System.out.println("Now, done...");
                   }The Above code is working fine, but as I said it transfer files from the Client to the Server, I wanna do the other way, I tried to change the code but it is not working.
    Any Help is appreciated,
    Thanks in advance

    ZeroTodd wrote:
    The Above code is working fine, but as I said it transfer files from the Client to the Server, I wanna do the other way, I tried to change the code but it is not working.48 posts, and you still make an "it is not working post".
    You are apparently using HTTP to do the transfer. From client to server is an UPLOAD; hence you use a multi-part form and you write the file using an output stream.
    From server to client is far easier: it is a simple DOWNLOAD. So in the client code, open an URLConnection to a specific url that results in the file, configure the URLconnection to do a GET request and read out the response using an input stream. If it doesn't work, the url is apparently not valid.
    Search on google for "urlconnection file download" and you'll get plenty of examples.

  • Getting .txt file data from servlet

    I am having problem finding the file I use "reguli.txt" to define page rules of a website.
    I use this file in a servlet.The file I copied it in the project folder,and also in /web/web-inf folder.
    The problem is I cant find the file without using all the path in this line: File filename = new File("reguli.txt");
          String filepath = filename.getAbsolutePath();
                FileInputStream file = new FileInputStream(filepath);
                InputStreamReader isr = new InputStreamReader(file);
                BufferedReader br = new BufferedReader(isr); I tried also:
    ServletContext context = getServletContext();
                InputStream contextPath = context.getResourceAsStream("/reguli.txt");
                InputStreamReader isr = new InputStreamReader(contextPath);
                BufferedReader br = new BufferedReader(isr);And I still get the same error:
    SEVERE: StandardWrapperValve[Servleet]: PWC1406: Servlet.service() for servlet Servleet threw exception
    java.io.FileNotFoundException: D:\Users\Stefan\GlassFish_v3_Prelude\glassfish\reguli.txt (The system cannot find the file specified)
    What am I doing wrong?

    Put the file directly under your webapps root context and access using following code
            String filename = "/InputFile.txt";
            ServletContext context = getServletContext();
            InputStream is = context.getResourceAsStream(filename); regards,
    nirvan.

  • File Download from server to client

    Please review the following code. I am attempting to download a file , whether PDF, DOC, TXT, etc.., from the server to client(in this case a DOC file). The f.exist() method returns true so the file exists but the f.length() returns 1. The file is considerably larger than 1 byte. The download occurs but the file contains 1 byte of code.
    Also, please review all the code and suggest any code changes needed to complete the download. I am new to Java programming so be kind.
    File f = new File(filePath + fileName);
    System.out.println("file " + f);
    System.out.println(f.exists());
    System.out.println("file length " + f.length());
    FileInputStream fis = new FileInputStream(f);
    BufferedInputStream bis = new BufferedInputStream(fis);
    response.setContentLength(fis.available());
    System.out.println("bytes " + fis.available());
    response.setContentType("application/msword");
    response.setHeader("Content-disposition","attachment; filename=" + fileName );
    BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
    byte[] buff = new byte[1024];
    int bytesRead;
    // Simple read/write loop.
    while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
    bos.write(buff, 0, bytesRead);
    bos.flush();
    bos.close();
    bis.close();
    response.flushBuffer();
    fis.close();
    } catch(Exception e){
    System.out.print("\n svtFileDownload.processRequestFileDownload Exception=" + e);

    the following is a nippet from a servlet I wrote that does what you want and I've had no problems with it, even with large file 200+ megs.
                String filename = bundle.getFileLocation();
                response.setContentType("application/stream");
                response.setHeader("Content-Disposition","attachment; filename="+filename+";");
                ServletOutputStream out = response.getOutputStream();
                BufferedInputStream fif= new BufferedInputStream(new FileInputStream(FILE_LOCATION+filename));
                int data;
                while((data = fif.read())!=-1)
                    out.write(data);
                fif.close();
                out.close();

  • PDF file downloading from server to client

    Hello,
    I am a newbie to Oralce UCM. Writing a component to merge some PDF files and allow user to save/open it on client side.
    The file downloaded is of 0 bytes and when opened it says -
    Adobe Reader could not open the the file because it is either not a suppported file type or because the file is damaged(It was sent as an email attachment and was not correctly decoded)
    this.m_binder.m_contentType = "application/pdf";
    this.m_binder.m_clientEncoding = "utf-8";
    DataStreamWrapper dataStreamWrapper = this.createNewDownloadStream();
    dataStreamWrapper.m_clientFileName = "MergedPDF";
    dataStreamWrapper.m_inStream = mergedPDF.getDocumentInputStream();
    dataStreamWrapper.m_inStreamActive = true;
    dataStreamWrapper.m_dataType = "application/pdf";
    try {
    this.m_httpImplementor.sendStreamResponse(this.m_binder, dataStreamWrapper);
    } catch (ServiceException e) {
    e.printStackTrace();
    Some clue would really help :)
    Thanks,
    Fauzia

    Hi Jiri,
    I have created and HCSP page where data is being populated dynamically. User may select some of the files from this page through checkbox. Page also has a download button which when clicked will merge all the selected documents and let the user open/save it.
    Information like Native URL, docName is passed on to the content server when the component is called (download button-click).
    Merging the PDFs, I have used a custom utility which takes url as a parameter and returns back the inputstream of merged PDF.
    And last, I have used DataStreamWrapper to send this inputstream back to the client as an attachment which can be read by IE.
    Also, I thought at first to use HTTPHeader where parameters like content-disposition, content-type can be set. But UCM already provides a better way to achieve this i.e. through DataStreamWrapper.
    public class MergePDF extends Service {
         public List<PdfDocumentSource> createPdfDocumentSourceList(
                   String... urlStrings) throws MalformedURLException {
              List<PdfDocumentSource> sourceList = new ArrayList<PdfDocumentSource>(
                        urlStrings.length);
              for (String url : urlStrings) {
                   URL urlDoc = new URL(url);
                   PdfDocumentSource pdfSource = new UrlPdfDocumentSource(urlDoc);
                   try {
                        System.out.println("URL in create method - "+urlDoc);
                        System.out.println("PDFSource input stream - "+pdfSource.getDocumentInputStream().available());
                   } catch (IOException e) {
                        e.printStackTrace();
                   sourceList.add(pdfSource);
              return sourceList;
         public void mergeAll() throws DataException, ServiceException {
              Properties property = this.m_binder.getLocalData();
              String urlStrings = "";
              List<PdfDocumentSource> sourceList;
              PdfDocumentSource mergedPDF = null;
              urlStrings = property.getProperty("webURL");
              String[] urls = urlStrings.split(";");
              try {
                   sourceList = createPdfDocumentSourceList(urls);
                   PdfMerge merge = new PdfMerge(sourceList, true);
                   try {
                        mergedPDF = merge.createMergedPdf();
                        transferToClient(mergedPDF);
                   } catch (PdfProcessingException e) {
                        e.printStackTrace();
              } catch (MalformedURLException e) {
                   e.printStackTrace();
              System.out.println("hello123");
              System.out.println("URLS - "+urlStrings);
         public void transferToClient(PdfDocumentSource mergedPDF){
              this.m_binder.m_contentType = "application/pdf";
              this.m_binder.m_clientEncoding = "utf-8";
              DataStreamWrapper dataStreamWrapper = this.createNewDownloadStream();
              dataStreamWrapper.m_clientFileName = "MergedPDF.pdf";
              dataStreamWrapper.m_inStream = mergedPDF.getDocumentInputStream();
              //dataStreamWrapper.m_inStreamActive = true;
              dataStreamWrapper.m_dataType = "application/pdf";
              try {
                   this.m_httpImplementor.sendStreamResponse(this.m_binder, dataStreamWrapper);
              } catch (ServiceException e) {
                   e.printStackTrace();
              * StringBuffer sb = this.createHttpResponseHeader();
              sb.append("Content-Type: application/pdf");
              sb.append("Content-Disposition: attachment; filename=fname.ext");
              //m_headerStr
              this.m_headerStr = sb.toString();
    }

  • PDF file name from servlet

    Hi
    we have a site from where users get PDF documents. every pdf document's name will vary from the user who is logged in currently.
    When users right click on pdf icon and click save as they see the correct file name in there 'save as' dialog. however, when users click the pdf icon and open the pdf in a new window and then click file-saveas the file name is not correct and has default name of my servlet.pdf
    right click save as works because of this
    userSession1.setHeader("Content-disposition", "inline;filename=" + fileNM + ".pdf");any clue how to resolve this issue?

    not sure if the problem is with the link but this is how the link is in my html file
    <a href="FrontController?op=FI_SummaryReportResults&er=error.jsp&
    jobID=<c:outvalue="${s.jobID}"/>&
    stepID=S&reqType=PDF&fileNM=
    <c:out value="${s.requestDesc}"/>" target="_blank" title="PDF format report. Link opens in a new window."></a>Message was edited by:
    bhaarat_java

  • Read binary file information from servlet - from database accessor method

    Okay, I have been working on this for awhile now and I just plain dont know what I am doing. Could someone please help me? I cannot find any examples through google or the forums for this specific type of situation( as in a servlet calls a method which gets binary file from a database).
    - How do I get the inputStream into the servlet so that I can read it?
    - Why am I getting the error message that OutputStream has already been called?
    If someone could give me direction or simply tell me what I should look up - I would really really appreciate it.
    The Servlet
    response.setContentType("application/msword");
    response.setHeader("Content-disposition","attachment; filename="+ file + ext);
    OutputStream os = response.getOutputStream();
    OOT openAttachments = searchInfo.openAttachments(newID, oot, ootNum, file, ext, os);
    InputStream is2 = oot.getIs();
        byte b[] = new byte[16384];
        int numBytes;
            while((numBytes=is2.read(b))!=-1){
                os.write(b,0,numBytes);
                System.out.println("is - in while" + is);
            is2.close();
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/ootMain.jsp?newID="+newID);
    dispatcher.forward(request, response);
            os.flush();
            os.close();
    The Method
    public OOT openAttachments(String newID, OOT oot, String ootNum, String file,
                               String ext, OutputStream os) {
        this.conn = database.SybaseDAO.grabConnection();
        String query = " edited for space'";
        state = conn.createStatement();
        rs = state.executeQuery(query);
            if(rs.next()){
               InputStream is = rs.getBinaryStream(2);
               oot.setIs(is);
               System.out.println("is - in while" + is);
               is.close();
    Error Messages
    (is - in while - method)    sun.jdbc.odbc.JdbcOdbcInputStream@c02a
    (is2 - after - servlet)      sun.jdbc.odbc.JdbcOdbcInputStream@c02a
    IOException: java.io.IOException: InputStream is no longer valid - the Statement
                                      has been closed, or the cursor has been moved
    Mar 14, 2005 9:53:19 AM org.apache.catalina.core.ApplicationDispatcher invoke
    SEVERE: Servlet.service() for servlet jsp threw exception
    java.lang.IllegalStateException: getOutputStream() has already been called for this responseThanks for your help/time -
    Crystal

    Here is the entire exception:
    Mar 16, 2005 9:32:44 AM org.apache.catalina.core.ApplicationDispatcher invoke
    SEVERE: Servlet.service() for servlet jsp threw exception
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
         at org.apache.catalina.connector.Response.getWriter(Response.java:596)
         at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:161)
         at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
         at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:122)
         at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
         at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182)
         at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
         at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
         at org.apache.jsp.ootMain_jsp._jspService(org.apache.jsp.ootMain_jsp:596)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:302)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:246)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:682)
         at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:581)
         at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:501)
         at oot.display_files.doGet(display_files.java:63)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:106)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:576)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)
    Mar 16, 2005 9:32:44 AM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet display_files threw exception
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
         at org.apache.catalina.connector.Response.getWriter(Response.java:596)
         at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:161)
         at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
         at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:122)
         at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
         at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182)
         at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
         at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
         at org.apache.jsp.ootMain_jsp._jspService(org.apache.jsp.ootMain_jsp:596)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:302)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:246)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:682)
         at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:581)
         at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:501)
         at oot.display_files.doGet(display_files.java:63)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:106)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:576)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)Line 63 is the include...

  • Testing file existence from client side

    hi
    Is it possible to test whether an arbitrary file or directory exists (and is readable by oracle user) on the database server file system from an Oracle client application? I would need to do this on 10gR2 and 9iR2.
    br. aspa

    To test for a directory query the dictionary view ALL_DIRECTORIES
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch241.htm#1291666
    To test for the existance of a file either try to open it in read mode using UTL_FILE or
    use Tom Kytes DirList utility for a list of files in the particular directory
    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:7506780031005

  • Accesing a html parameter from servlet is not producing in a new file

    Hi,...
    I have passed two values from html and accessed thru a servlet file.
    In servlet, parameters are verified and result must passed to a new jsp file.
    Wen i run the file i can view only a blank page.I think the problem will be in servlet mapping.
    verify my coding and give me a result.
    I wer using net bean 6 with glassfish v2 server.
    public class Logverifier extends HttpServlet {
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
    /* TODO output your page here
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Servlet Logverifier</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Servlet Logverifier at " + request.getContextPath () + "</h1>");
    out.println("</body>");
    out.println("</html>");
    ServletConfig config=getServletConfig();
    String user=config.getInitParameter("user");
    String pass=config.getInitParameter("pass");
    ServletContext context=getServletContext();
    RequestDispatcher reqdis=context.getRequestDispatcher("menu.jsp");
    RequestDispatcher reqdis1=context.getRequestDispatcher("login.jsp");
    if((user.equals(request.getParameter("user")))&&(pass.equals(request.getParameter("pass"))))
    reqdis.forward(request, response);
    else
    reqdis1.forward(request, response);
    } finally {
    out.close();
    <servlet>
    <servlet-name>Logverifier</servlet-name>
    <servlet-class>com.Logverifier</servlet-class>
    <init-param>
    <description>          </description>
    <param-name>user</param-name>
    <param-value>admin</param-value>
    </init-param>
    <init-param>
    <param-name>pass</param-name>
    <param-value>media</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>Logverifier</servlet-name>
    <url-pattern>/com/Logverifier</url-pattern>
    </servlet-mapping>
    </servlet>
    regards,
    satheesh

    Hi,...
    I have passed two values from html and accessed thru a servlet file.
    In servlet, parameters are verified and result must passed to a new jsp file.
    Wen i run the file i can view only a blank page.I think the problem will be in servlet mapping.
    verify my coding and give me a result.
    I wer using net bean 6 with glassfish v2 server.
    public class Logverifier extends HttpServlet {
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
    /* TODO output your page here
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Servlet Logverifier</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Servlet Logverifier at " + request.getContextPath () + "</h1>");
    out.println("</body>");
    out.println("</html>");
    ServletConfig config=getServletConfig();
    String user=config.getInitParameter("user");
    String pass=config.getInitParameter("pass");
    ServletContext context=getServletContext();
    RequestDispatcher reqdis=context.getRequestDispatcher("menu.jsp");
    RequestDispatcher reqdis1=context.getRequestDispatcher("login.jsp");
    if((user.equals(request.getParameter("user")))&&(pass.equals(request.getParameter("pass"))))
    reqdis.forward(request, response);
    else
    reqdis1.forward(request, response);
    } finally {
    out.close();
    <servlet>
    <servlet-name>Logverifier</servlet-name>
    <servlet-class>com.Logverifier</servlet-class>
    <init-param>
    <description>          </description>
    <param-name>user</param-name>
    <param-value>admin</param-value>
    </init-param>
    <init-param>
    <param-name>pass</param-name>
    <param-value>media</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>Logverifier</servlet-name>
    <url-pattern>/com/Logverifier</url-pattern>
    </servlet-mapping>
    </servlet>
    regards,
    satheesh

  • How to transfer file from server to client

    I am making a server printer where all the system can take print out from the Printer installed on the server
    i am not able to send file from the client to the Server. I am Attaching the code Please Help me it is my college project.
    Server.java*
    import java.io.*;
    import java.lang.*;
    import java.net.*;
    import java.util.*;
    import java.io.File;
    class Server
         static final int PORT     = 26548; //Server Listening port
         static String path;
         public static void main(String args[])
              System.out.println("Starting Server");
              receive();
         public static void receive()
              while ( true )
                   try
                        //Create a socket
                        ServerSocket srvr = new ServerSocket(PORT);
                        Socket skt = srvr.accept();
                        String clientname= skt.getInetAddress().getHostAddress();
                        int clientport=skt.getPort();
                        long time = System.currentTimeMillis();
                        path= "C:\\Ankit Gupta\\Programs\\"+clientname+"\\"+time+" test.pdf";
                        System.out.println("File Recieved from : "+clientname+" : "+clientport);
                        //HttpServletRequest req;
                        //String remoteHost = req.getRemoteHost();
                        //String adr = getRemoteUser();
                        FileOutputStream fos = new FileOutputStream(path);
                        BufferedOutputStream out = new BufferedOutputStream(fos);
                        BufferedInputStream in = new BufferedInputStream( skt.getInputStream() );
                        //Read, and write the file to the socket
                        int i;
                        System.out.println("Receiving data...");
                        while ((i = in.read()) != -1)
                             out.write(i);
                        out.flush();
                        in.close();
                        out.close();
                        skt.close();
                        srvr.close();
                        System.out.println("Transfer complete.");
                        printfile();
                   catch(Exception e)
                        System.out.print("Error! It didn't work! " + e + "\n");
                   try
                        Thread.sleep(1000);
                   catch (InterruptedException ie)
                        System.err.println("Interrupted");
              } //end infinite while loop
         public static void printfile()
              delete();
         public static void delete()
              try
                   Thread.sleep(5000);
              catch (InterruptedException ie)
                   System.err.println("Interrupted");
              System.out.println("Deleting file");
              File f = new File(path);
         // Make sure the file or directory exists and isn't write protected
              if (!f.exists())
                   throw new IllegalArgumentException("Delete: no such file or directory: " + path);
         if (!f.canWrite())
                   throw new IllegalArgumentException("Delete: write protected: "+ path);
              // If it is a directory, make sure it is empty
         if (f.isDirectory())
                   String[] files = f.list();
                   if (files.length > 0)
                   throw new IllegalArgumentException("Delete: directory not empty: " + path);
         // Attempt to delete it
              boolean success = f.delete();
              if (!success)
                   throw new IllegalArgumentException("Delete: deletion failed");
    Client.java_
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    import java.util.*;
    import java.net.*;
    public class Client extends JFrame {
    static final int PORT = 26548; //Server Listening Port
    static File file;
    static final String HOST = "10.35.9.152";//Server Address     
    JTextField m_fileNameTF = new JTextField(25);
    JFileChooser m_fileChooser = new JFileChooser();
    Client() {
    m_fileNameTF.setEditable(false);
         JButton openButton = new JButton("Open");
         openButton.addActionListener(new OpenAction());
         JPanel content = new JPanel();
         content.setLayout(new FlowLayout());
         content.add(openButton);
    content.add(m_fileNameTF);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setContentPane(content);
         this.setSize(400,200);
    class OpenAction implements ActionListener {
         public void actionPerformed(ActionEvent ae) {
              int retval = m_fileChooser.showOpenDialog(Client.this);
              if (retval == JFileChooser.APPROVE_OPTION) {
                   file = m_fileChooser.getSelectedFile();
              m_fileNameTF.setText(file.getAbsolutePath());
                   send(file.getAbsolutePath());
    public static void main(String[] args) {
         JFrame window = new Client();
         window.setVisible(true);
         public static boolean send( String filename )
         try
              System.out.println("Connecting to Server");
              Socket skt = new Socket(HOST, PORT);
              //Create a file input stream and a buffered input stream.
              FileInputStream fis = new FileInputStream(filename);
              BufferedInputStream in = new BufferedInputStream(fis);
              BufferedOutputStream out = new BufferedOutputStream( skt.getOutputStream() );
              //Read, and write the file to the socket
              int i;
              System.out.println("Connected to Server");
              System.out.println("Sending data...\n");
              while ((i = in.read()) != -1)
                   out.write(i);
                   //System.out.println(i);
              System.out.println("Transfer complete.");
              //Close the socket and the file
              out.flush();
              out.close();
              in.close();
              skt.close();
              return true;
         catch( Exception e )
                   send(file.getAbsolutePath());
              return false;
    }

    I am making a server printer where all the system can take print out from the Printer installed on the server
    i am not able to send file from the client to the Server. I am Attaching the code Please Help me it is my college project.
    Server.java*
    import java.io.*;
    import java.lang.*;
    import java.net.*;
    import java.util.*;
    import java.io.File;
    class Server
         static final int PORT      = 26548; //Server Listening port
         static String path;
         public static void main(String args[])
              System.out.println("Starting Server");
              receive();
         public static void receive()
              while ( true )
                   try
                        //Create a socket
                        ServerSocket srvr = new ServerSocket(PORT);
                        Socket skt = srvr.accept();
                        String clientname= skt.getInetAddress().getHostAddress();
                        int clientport=skt.getPort();
                        long time = System.currentTimeMillis();
                        path= "C:\\Ankit Gupta\\Programs\\"+clientname+"\\"+time+" test.pdf";
                        System.out.println("File Recieved from : "+clientname+" : "+clientport);
                        //HttpServletRequest req;
                        //String remoteHost = req.getRemoteHost();
                        //String adr = getRemoteUser();
                        FileOutputStream fos = new FileOutputStream(path);
                        BufferedOutputStream out = new BufferedOutputStream(fos);
                        BufferedInputStream in = new BufferedInputStream( skt.getInputStream() );
                        //Read, and write the file to the socket
                        int i;
                        System.out.println("Receiving data...");
                        while ((i = in.read()) != -1)
                             out.write(i);
                        out.flush();
                        in.close();
                        out.close();
                        skt.close();
                        srvr.close();
                        System.out.println("Transfer complete.");
                        printfile();
                   catch(Exception e)
                        System.out.print("Error! It didn't work! " + e + "\n");
                   try
                        Thread.sleep(1000);
                   catch (InterruptedException ie)
                        System.err.println("Interrupted");
              } //end infinite while loop
         public static void printfile()
              delete();
         public static void delete()
              try
                   Thread.sleep(5000);
              catch (InterruptedException ie)
                   System.err.println("Interrupted");
              System.out.println("Deleting file");
              File f = new File(path);
             // Make sure the file or directory exists and isn't write protected
              if (!f.exists())
                   throw new IllegalArgumentException("Delete: no such file or directory: " + path);
             if (!f.canWrite())
                   throw new IllegalArgumentException("Delete: write protected: "+ path);
              // If it is a directory, make sure it is empty
             if (f.isDirectory())
                   String[] files = f.list();
                   if (files.length > 0)
                   throw new IllegalArgumentException("Delete: directory not empty: " + path);
             // Attempt to delete it
              boolean success = f.delete();
              if (!success)
                   throw new IllegalArgumentException("Delete: deletion failed");
    Client.java_
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    import java.util.*;
    import java.net.*;
    public class Client extends JFrame {
    static final int PORT = 26548; //Server Listening Port
    static File file;
    static final String HOST = "10.35.9.152";//Server Address     
    JTextField   m_fileNameTF  = new JTextField(25);
    JFileChooser m_fileChooser = new JFileChooser();
    Client() {
       m_fileNameTF.setEditable(false);
         JButton openButton = new JButton("Open");
         openButton.addActionListener(new OpenAction());
         JPanel content = new JPanel();
         content.setLayout(new FlowLayout());
         content.add(openButton);
      content.add(m_fileNameTF);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setContentPane(content);
         this.setSize(400,200);
    class OpenAction implements ActionListener {
         public void actionPerformed(ActionEvent ae) {
              int retval = m_fileChooser.showOpenDialog(Client.this);
              if (retval == JFileChooser.APPROVE_OPTION) {
                   file = m_fileChooser.getSelectedFile();
                 m_fileNameTF.setText(file.getAbsolutePath());
                   send(file.getAbsolutePath());
    public static void main(String[] args) {
         JFrame window = new Client();
         window.setVisible(true);
         public static boolean send( String filename )
         try
              System.out.println("Connecting to Server");
              Socket skt = new Socket(HOST, PORT);
              //Create a file input stream and a buffered input stream.
              FileInputStream fis = new FileInputStream(filename);
              BufferedInputStream in = new BufferedInputStream(fis);
              BufferedOutputStream out = new BufferedOutputStream( skt.getOutputStream() );
              //Read, and write the file to the socket
              int i;
              System.out.println("Connected to Server");
              System.out.println("Sending data...\n");
              while ((i = in.read()) != -1)
                   out.write(i);
                   //System.out.println(i);
              System.out.println("Transfer complete.");
              //Close the socket and the file
              out.flush();
              out.close();
              in.close();
              skt.close();
              return true;
         catch( Exception e )
                   send(file.getAbsolutePath());
              return false;
    }

  • How to tranfer file from between two client?

    Hi, all:
    I'd like to tranfer file from client A to client B. Basically, I will treat one of them is client and one of them is server, then create a server socket/socket connection, then they can conmmunicate. I know how to talk between them. However, I don't know how to trasfer file from client to server, or from server to client in the same class. I mean not two class: Server socket and client socket.
    Consider the following case:
    There is a function, just like MSN file transfer: transfer file from localhost to "10.4.155.8". How can I transfer file from localhost to "10.4.155.8"?
    Help please.
    --Paul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Hi, man:
    Thanks.
    I agree with you at most.
    I am doing my practise project: the other MSN Messenger and more, I will include file encryption and file decryption, etc.
    My point is one connection will make center server too heavy. Then I have to adapt your first means:
    promote either Client A or Client B become server, leave the other guy still being client, because I know their IP address. This will free the server a lot.
    BTW, I finish my code pretty much, say 70%. However, I felt tired for coding. I have my full time job in software development at daytime. I am looking one or two guy to share this project. My point is to improve the performance of the this Messenger. I feel my code maybe work fine with hundred of con-current user, maybe not, or maybe more, not sure. My email: [email protected]. (I put my name means I am searious).
    Could anyone feel he/she is good at Messenger, please email me, then we can share my code with you.
    Code sample for file transfer:
    //For Client side
    import java.io.*;
    import java.net.*;
    class Client
    public static void main(String args[]) throws Exception
    String sentence;
    String host = "localhost";
    int SERVER_LISTEN_PORT = 5432;
    BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
    Socket clientSocket = null;
    DataOutputStream outToServer = null;
    BufferedInputStream inFromServer = null;
    try
    clientSocket = new Socket(host, SERVER_LISTEN_PORT);
    outToServer = new DataOutputStream(clientSocket.getOutputStream());
    inFromServer = new BufferedInputStream(clientSocket.getInputStream());
    }catch(UnknownHostException e)
    System.err.println("Don't know about host: "+host);
    }catch(IOException e)
    System.err.println("Couldn't get I/O for the connection to: "+host);
    sentence = inFromUser.readLine();
    outToServer.writeBytes(sentence + '\n');
    FileOutputStream fos = new FileOutputStream("c://test.doc");
    int totalDataRead;
    int totalSizeWritten = 0;
    int DATA_SIZE = 20480;
    byte[] inData = new byte[DATA_SIZE];
    System.out.println("Begin");
    while ((totalDataRead = inFromServer.read(inData, 0, inData.length)) >= 0)
    fos.write(inData, 0, totalDataRead);
    totalSizeWritten = totalSizeWritten + totalDataRead;
    System.out.println(totalSizeWritten);
    System.out.println("Done");
    fos.close();
    clientSocket.close();
    //For Client side
    import java.io.*;
    import java.net.*;
    class Server
    public static void main(String args[]) throws Exception
    int SERVER_LISTEN_PORT = 5432;
    String clientSentence;
    ServerSocket welcomeSocket = null;
    try
    welcomeSocket = new ServerSocket(SERVER_LISTEN_PORT);
    }catch(IOException ioe)
    System.out.println("Could not listen on port: " + SERVER_LISTEN_PORT);
    System.exit(1);
    while(true)
    Socket connectionSocket = null;
    try
    connectionSocket = welcomeSocket.accept();
    }catch(IOException ioe)
    System.err.println("Accept failed.");
    System.exit(1);
    BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
    BufferedOutputStream outToClient = new BufferedOutputStream(connectionSocket.getOutputStream());
    System.out.println(inFromClient.readLine());
    int data;
    int totalSizeTransferred = 0;
    int totalSizeRead;
    int PACKET_SIZE = 20480;
    byte[] packet = new byte[PACKET_SIZE];
    System.out.println("reading file...");
    FileInputStream fis = new FileInputStream("c://JVM_Profiling_Report.doc");
    while ((totalSizeRead = fis.read(packet, 0, packet.length)) >= 0)
    outToClient.write(packet, 0, totalSizeRead);
    totalSizeTransferred = totalSizeTransferred + totalSizeRead;
    System.out.println(totalSizeTransferred);
    System.out.println("done reading file...");
    outToClient.close();
    fis.close();
    My question, any good idea for creating progress bar?
    Thanks.

  • Drive Redirection virtual channel hangs when copying a file from server to client over RDP 8.1

    Problem Summary:
    A UTF-8 without BOM Web RoE XML file output from a line of business application will not drag and drop copy nor copy/paste from a Server 2012 R2 RD Session Host running RD Gateway to a Windows 7 Remote Desktop client over an RDP 8.1 connection and the Drive
    Redirection virtual channel hangs.  The same issue affects a test client/server with only Remote Desktop enabled on the server.
    Other files copy with no issue.  See below for more info.
    Environment:
    Server 2012 R2 Standard v6.3.9600 Build 9600
    the production server runs RDS Session Host and RD Gateway roles (on the same server).  BUT,
    the issue can be reproduced on a test machine running this OS with simply Remote Desktop enabled for Remote Administration
    Windows 7 Pro w SP1v6.1.7601 SP1 Build 7601 running updates to support RDP 8.1
    More Information:
    -the file is a UTF-8 w/o BOM (Byte Order Marker) file containing XML data and has a .BLK extension.  It is a Web Record of Employment (RoE) data file exported from the Maestro accounting application.
    -the XML file that does not copy does successfully validate against CRA's validation XML Schema for Web RoE files
    -Video redirection is NOT AFFECTED and continues to work
    -the Drive Redirection virtual channel can be re-established by disconnecting/reconnecting
    -when the copy fails, a file is created on the client and is a similar size to the original.  However, the contents are incomplete.  The file appears blank but CTRL-A shows whitespace
    -we can copy the contents into a file created with Notepad and then that file, which used to copy, will then NOT copy
    -the issue affects another Server 2012 R2 test installation, not just the production server
    -it also affects other client Win7 Pro systems against affected server
    -the issue is uni-directional i.e. copy fails server to client but succeeds client to server
    -I don't notice any event log entries at the time I attempt to copy the file.
    What DOES WORK
    -downgrading to RDP 7.1 on the client WORKS
    -modifying the file > 2 characters -- either changing existing characters or adding characters (CRLFs) WORKS
    -compressing the file WORKS e.g. to a ZIP file
    -copying OTHER files of smaller, same, and larger sizes WORKS
    What DOES NOT WORK?
    -changing the name and/or extension does not work
    -copying and pasting affected content into a text file that used to have different content and did copy before, then does not work
    -Disabling SMB3 and SMB2 does not work
    -modifying TCP auto-tuning does not work
    -disabling WinFW on both client and server does not work
    As noted above, if I modify the affected file to sanitize it's contents, it will work, so it's not much help.  I'm going to try to get a sample file exported that I can upload since I can't give you the original.
    Your help is greatly appreciated!
    Thanks.
    Kevin

    Hi Dharmesh,
    Thanks for your reply!
    The issue does seem to affect multiple users.  I'm not fully clear on whether it's multiple users and the same employee's file, but I suspect so.
    The issue happens with a specific XML file and I've since determined that it seems to affect the exported RoE XML file for one employee (record?) in the software.  Other employees appear to work.
    The biggest issue is that there's limited support from the vendor in this scenario.  Their app is supported on 2012 R2 RDS.
    What I can't quite wrap my head around are
    why does it work in RDP 7.1 but not 8.1?  What differences between the two for drive redirection would have it work in 7.1 and not 8.1?
    when I examine the affected file, it really doesn't appear any different than one that works.  I used Notepad++ and it shows the encoding as the same and there doesn't appear to be any invalid characters in the affected file.  I wondered
    if there was some string of characters that was being misinterpreted by RDP or some other operation and blocked somehow but besides having disabled AV and firewall software on both ends, I'm not sure what else I could change to test that further
    Since it seems to affect only the one employee's XML file AND since modifying that file to change details in order to post it online would then make that file able to be copied, it seems I won't be able to post a sample.  Too bad.
    Kevin

  • Problem in downloading a file from AS to client through form using webutil

    I am running oracle 10g sever & devloper 10g in the same machine. Almost every thing is working properly from a client PC in the network except the following aspect :-
    From client pc, through form, I have created one export(dmp file) which is being saved in the AS. Now I want this file to be downloaded from AS to this client PC.
    I have tried webutil_file.copy_file(server_filename,client_copy_name) which is not working. the error trace file says "Unable to open source file in server" & "Unable to read WebUtil configuration file".
    I have also tried webutil_file_transfer.AS_to_Client_with_progress
    which results in unsuccessful from server to client.
    I modified the webutil.cfg file as :=
    transfer.database.enabled=TRUE
    transfer.appsrv.enabled=TRUE
    transfer.appsrv.accessControl=FALSE
    transfer.appsrv.workAreaRoot=D:\temp
    transfer.appsrv.read.1=D:\temp
    transfer.appsrv.write.1=D:\temp
    Please help me out from this situation

    hi
    Welcome to OTN.
    try to use.
    Client_host()sarah

  • How can i transfer more than one file from server to client

    Hi,
    our requirement is transfer more than one files from server to client using the
    webutil_file_transfer.as_to_client_with_progress.One file transfer is already working in our system.If anybody know the solution please inform
    regards
    mat

    just an idea ...
    for this purpose let us put aside security concerns and other potential problems....
    -- Get the content of a server directory with Filter and create zip file
    1) create a class that implements java.io.FilenameFilter ...
    2) define accept() method ...
    3) call File.list() with the filter as a parameter. The returned array of strings will have all the names that passed through the accept() filter
    4) use java.util.Zip to create ZIP file on the server side
    -- I think it is better to create this functionality as a separate Java class, put it in required folder and after it
    -- use Forms->Program->"Import Java class" to create pl/sql wrappers, than to create wrappers for all classes and code in pl/sql
    5) use webutil to transfer file on the client
    6) use Java on client side to unzip transferred file
    if you think this is not too complicated, you should try ...
    Regards,
    Vladimir

Maybe you are looking for