How do I estimate time takes to Zip/Unzip using java.util.zip ?

If I am compressing files or uncompressing zips using java.util.zip is there a way for me to tell the user how long it should take or for perhaps displaying a progress monitor ?

For unzip use the ZipInputStream and pass it a CountingInputStream that keeps track ofr the number of bytes read from it (you write this). This CountingInputStream extends fileInputStream and as such can provide you with information about the total number of bytes available to be read and the number already read. This can give a crude idea of how much work has been done and how much work still needs to be done. It is inaccurate but should be good enoough for a progress bar
As for zipping use the ZipOutputStream and pass it blocks of information. Keep track of the number of blocks you have written and the number you still need to write.
matfud

Similar Messages

  • Problem in deleting Zip files unzipped using java.util.zip

    I have a static methos for unzipping a zip file. after unzipping the file when i am trying to delete that file using File.delete()its not getting deleted. but when methods like exist(). canRead(), canWrite() methods are returning true what can be the possible problem ? i had closed all the streams after unzipping operation Please go through the following code.
    public static boolean unzipZipFile(String dir_name, String zipFileName) {
    try {
    ZipFile zip = new ZipFile(zipFileName);
    Enumeration entries = zip.entries();
    while (entries.hasMoreElements()) {
    ZipEntry entry = (ZipEntry) entries.nextElement();
    // got all the zip entries here
    // now has to process all the files
    // first all directories
    // then all the files
    if (entry.isDirectory()) {
    // now the directories are created
    File buf=new File(dir_name,entry.getName());
    buf.mkdirs();
    continue;
    }// now got the dirs so process the files
    entries = zip.entries();
    while(entries.hasMoreElements()) {
    // now to process the files
    ZipEntry entry = (ZipEntry) entries.nextElement();
    if (!entry.isDirectory()){
    File buf=new File(dir_name,entry.getName());
    copyInputStream(
    zip.getInputStream(entry),
    new BufferedOutputStream(
    new FileOutputStream(buf)));}
    } catch (IOException e) {
    e.printStackTrace();
    return false;
    return true;
    now i am trying to call this method to unzip a zip file
    public static void main (String arg[]){
    unzipZipFile("C:/temp","C:/tmp.zip");
    java.io.File filer = new File("C:/tmp.zip");
    System.out.println (filer.canRead());
    System.out.println (filer.canWrite());
    System.out.println (filer.delete());
    Please tell me where my program is going wrong ?

    Thanks .. the problem is solved... i was not closing the Zip file .. rather i was trying to close all the other streams that i used for IO operaion ... thanks a lot

  • Zip created through java.util.zip but problem in windows XP compress folder

    Hi friends,
    I am a software developer ,working on java/j2ee.currently i am working in a document management software related to logistics.Here i am facing a problem at the time of open the zip file through windows XP's in built software called "Folder compress".It's creared through java.util.zip.zipoutputstream.but at time of open through xp compress folder software ,it's showing error that "you can't open this file , this file are protected for your computer security" , but when i trying to open it through winzip or winrar, it's not giving any problem.My also specefing the code snippet below :-
    ZipOutputStream zip =  null;
         FileOutputStream fileWriter = null;
              try
                   fileWriter = new FileOutputStream(destZipFile);
                   zip = new ZipOutputStream(fileWriter);
                   //required for XP compress
                   zip.setMethod(ZipOutputStream.DEFLATED);
                zip.setLevel(Deflater.DEFAULT_COMPRESSION); //use default level
              }catch (Exception ex){
                   ex.printStackTrace();
                   System.exit(0);
              addFolderToZip("", srcFolder, zip);
              try
                   zip.flush();
                   zip.close();
                   zip=null;
                   fileWriter.close();
                   fileWriter = null;
              }catch (Exception ex)
                   //ex.printStackTrace();
                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Zip folder processing");
              }I desperately looking for a help regarding this issue , if any body have any solution the please send at this forum.
    Thanks,
    Chiranjit

    this file working file for winzip or winrar there is no problem.i am also sending the whole code of that java file that can help you better.
    Program Name:     EdocRetrieveServiceSLBean.java
    Description:     EdocRetrieveService CMP Bean Class
    Classes:          EdocRetrieveServiceSLBean
    Package:          net.mlog.edoc.ejb.entity
    Modification History
    <CR No>          <Date>               <Modified By>               <Comments>
    Version 1.0     2005.12.01          Sutapa   Ray               Create
    /** The sequence of methods to be called.
       ===============================================================================================================================
       1. mlogOriginDocumentAudit(String argActionDetails,int argDocumentId,int argActionId,String argActionByUserId)
       2. mlogDestinationBatchDownload(Vector TREEDATA,String SessionIDVal,String argUserId)
              a) Start DIR --
              private  String DoFolder(String folderNname)
              b) Create the folder
              private String CreateFolder(String FolderName,String newFolderPath)
              c) Zip the folder
              private void zipFolder(String srcFolder, String destZipFile)
              d) Add folders to zip file
              private void addToZip(String path, String srcFile, ZipOutputStream zip)
              e) Add the srcFolder to the zip stream.
              private void addFolderToZip(String path, String srcFolder, ZipOutputStream zip)
              f) Delete Directory from server
              public boolean deleteDir(File dir) {
       3. mpsDocumentView(String argUserId,Integer[] argSfxFileId)
       4. mlogOriginDocumentView(int argDocumentId,String argUserId)
       5. findDocTypeForDocId(Integer argDocId) throws RemoteException;
    package net.mlog.edoc.ejb.session;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import javax.ejb.CreateException;
    import javax.ejb.ObjectNotFoundException;
    import javax.ejb.FinderException;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.naming.Context;
    import javax.rmi.PortableRemoteObject;
    import java.rmi.RemoteException;
    //import lib for all entity beans
    import net.mlog.edoc.ejb.entity.IDocumentCMP;
    import net.mlog.edoc.ejb.entity.IDocumentCMPHome;
    import net.mlog.edoc.ejb.entity.IDocumentTypeCMP;
    import net.mlog.edoc.ejb.entity.IDocumentTypeCMPHome;
    import net.mlog.edoc.ejb.entity.IDocumentAuditCMP;
    import net.mlog.edoc.ejb.entity.IDocumentAuditCMPHome;
    //import lib for reader class of properties file
    import net.mlog.edoc.ejb.session.PropertiesFileReader;
    //import lib for user Define File class
    import net.mlog.edoc.ejb.Session.EFile;
    //import lib for SFXWebClient
    import net.mlog.edoc.webservice.sfxWeb.ISFXWebClientSLHome;
    import net.mlog.edoc.webservice.sfxWeb.ISFXWebClientSL;
    import java.sql.Date;
    import java.sql.Timestamp;
    import java.text.SimpleDateFormat;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    import java.util.zip.Deflater;
    import java.util.Vector;
    import java.util.Iterator;
    import java.util.Collection;
    import java.util.StringTokenizer;
    import java.util.Enumeration;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.File;
    import java.io.InputStream;
    import java.io.IOException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    //import lib for NGP Mail
    import javax.jms.Queue;
    import javax.jms.QueueConnectionFactory;
    import javax.jms.QueueConnection;
    import javax.jms.QueueSender;
    import javax.jms.QueueSession;
    import javax.jms.JMSException;
    import weblogic.jms.extensions.WLQueueSession;
    import weblogic.jms.extensions.XMLMessage;
    //import javax.mail.*;
    //import javax.mail.internet.*;
    //import lib for USI
    import com.msl.security.USIException;
    import com.msl.security.USIServerAPI;
    import com.msl.security.UserPolicyData;
    import net.msl.util.logging.MLogger;
    public class EdocRetrieveServiceSLBean implements SessionBean {
      private static final boolean VERBOSE = true;
      private SessionContext ctx;
      public void ejbActivate() {
      public void ejbRemove() {
      public void ejbPassivate() {
      public void setSessionContext(SessionContext ctx) {
        this.ctx = ctx;
      public void ejbCreate () throws CreateException {
      private static final MLogger logger;
      static
         logger = MLogger.getLogger(net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.class.getName(), "net/mlog/edoc/ejb/session/eDocRetrieveServiceMessagesXML");
    //*********************KEEPING AUDITS OF DOCUMENTS BY MLOG ORIGIN PEOPLE*******************************
    * <b>
    * Used for Auditing the user action.
    * </b>
    * This function is called from various functions of eDocController
    * <p>
    * @param  argActionDetails Gives the details of Action in document audit.
    * @param  argDocumentId gives the Document Id in Document Audit.
    * @param  argActionId Action Id in Document Audit.
    * @param  argActionByUserId User Id of the Docment Audit action.
    * @return Returns a boolean value. 1 for success, 0 for Failure.
    public boolean mlogOriginDocumentAudit(String argActionDetails,int argDocumentId,int argActionId,String argActionByUserId) throws RemoteException
         //NGP/JDK Logging
         boolean flag=false;
    try{
         //getting context of the server
         InitialContext documentAuditCMPInitialContext=getInitialContext();
         Object objDocumentAuditCMPRef=null;
         try{
              objDocumentAuditCMPRef=documentAuditCMPInitialContext.lookup("DocumentAuditCMPBeanJNDI");
         catch(Exception e)
              //NGP/JDK Logging if JNDI Not found
              //logger.log(Level.SEVERE, "{0} : JNDI not found : {1}",new Object[] {"MSG002","DocumentAuditCMPBeanJNDI"});
              logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.JNDINotFound","DocumentAuditCMPBeanJNDI not found");
         //find the maximum audit id in the Document_Audit table
         //Home interface reference of DocumentAuditCMP EJB
         //IDocumentAuditCMPHome iDocumentAuditCMPHomeRef=(IDocumentAuditCMPHome)PortableRemoteObject.narrow(objDocumentAuditCMPRef,IDocumentAuditCMPHome.class);
         IDocumentAuditCMPHome iDocumentAuditCMPHomeRef=(IDocumentAuditCMPHome)objDocumentAuditCMPRef;
         //Remote interface reference of DocumentAuditCMP EJB
         IDocumentAuditCMP iDocumentAuditCMPCreateRef=iDocumentAuditCMPHomeRef.create(new Timestamp(System.currentTimeMillis()),argActionDetails,argActionByUserId,new Integer(argActionId),new Integer(argDocumentId));
         //set flag to true if Document is audited
         flag=true;
    }//end of try
    catch(Exception expt)
         //logger.finer(expt);
         logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.CreateException","Exception in creating Document Audit record");
      return flag;
    //*********************BATCH DOWNLOAD OF DOCUMENTS BY MLOG ORIGIN PEOPLE*******************************
    * <b>
    * Used for Validating the documents.
    * </b>
    * This function is called from Struts
    * <p>
    * @param  TREEDATA Treeset obtained after search.
    * @param  SessionIDVal gives the Session Value Id.
    * @return Returns a boolean value. 1 for success, 0 for Failure.
    public byte[] mlogDestinationBatchDownload(Vector TREEDATA,String SessionIDVal,String argUserId) throws RemoteException
         //NGP/JDK Logging
         /*FileHandler handler = null;
        Logger logger=null;
         try
           PropertiesFileReader propertiesFileReaderRef=new  PropertiesFileReader();
            String logFile=propertiesFileReaderRef.getProperties("/edoc.properties","EDOC_LOG");
           handler = new FileHandler("eDoc.log",0,1, true);
           logger = Logger.getLogger("ErrorMsg");
           logger.addHandler(handler);
           logger.setLevel(Level.ALL);
        }catch(Exception excp)
             NGP/JDK Logging warning
             logger.log(Level.WARNING, "{0} : Unable to find Resource Bundle File : {1}",new Object[] {"MSG001","ErrorMsg"});
         //Remote interface reference of SFXWebClientSL
         ISFXWebClientSL iSFXWebClientSLRef=null;
         //Home interface reference of SFXWebClientSL
         ISFXWebClientSLHome iSFXWebClientSLHomeRef=null;
         Vector filePath=new Vector();
         byte[] fileContent=null;
         String eDocRoot="";
         String eDocPathMain="";
         String eDocPath="";
         File tempRootFileforDelete = null;
         if (TREEDATA.capacity() != 0 )
              String BLNODirPath="";
              String PONODirPath="";
              String SONODirPath="";
              // added for doc type level--2005.11.27--samar
              String docTypeDirPath="";
              String filepath="";
              try
                 PropertiesFileReader propertiesFileReaderRef=new  PropertiesFileReader();
                 filepath=propertiesFileReaderRef.getProperties("/edoc.properties","TEMP_FILE_DIR");
                 logger.finer("File Path:" +filepath);
              }catch(Exception excp)
                   excp.printStackTrace();
                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.IOException","TEMP_FILE_DIR property (edoc.properties) not found");
              eDocRoot=CreateFolder("eDocTemp",filepath+File.separator);
              // added for top level--2005.12.02--samar
              //eDocRoot=CreateFolder("eDocTemp",System.getProperty("user.home")+File.separator);
              //eDocPath=CreateFolder(SessionIDVal,eDocRoot+File.separator);
              Enumeration TREEDATAEn = TREEDATA.elements();               //Setting The Tree Folder
              String   BLNO="";
              String   PONO="";
              String   SONO="";
              String   DNO ="";
              while(TREEDATAEn.hasMoreElements())
                   StringTokenizer st = new StringTokenizer((TREEDATAEn.nextElement()).toString(),"_");
                   while (st.hasMoreTokens()) // Extract All the Fields Of Every Vector Element
                        BLNO = st.nextToken();          // CSBWNO
                        PONO = st.nextToken();         // PONO
                        SONO = st.nextToken();        // SONO
                        DNO = st.nextToken();          // DNO
                        eDocPathMain=CreateFolder(SessionIDVal,eDocRoot+File.separator);
                        eDocPath=CreateFolder("eDoc",eDocPathMain+File.separator);
                        BLNODirPath = CreateFolder(BLNO,eDocPath+File.separator);
                        PONODirPath = CreateFolder(PONO,BLNODirPath+File.separator);
                        SONODirPath = CreateFolder(SONO,PONODirPath+File.separator);
                        // added for doc type level--2005.11.27--samar
                        docTypeDirPath=CreateFolder(findDocTypeForDocId(new Integer(DNO)),SONODirPath+File.separator);
                        File tempRootFile=new File(eDocRoot);
                        tempRootFile.canWrite();
                        filePath.add(tempRootFile.getParent());
                        tempRootFileforDelete = tempRootFile;
                        //File tempeDocPathMainFile=new File(eDocPathMain);
                        //filePath.add(tempeDocPathMainFile.getParent());
                        //2005-12-01::code change for top level directory deletion
                        //File tempFile=new File(eDocPath);//BLNODirPath);
                        //filePath.add(tempFile.getParent());
                        filePath.add(eDocPathMain);
                        filePath.add(eDocPath);
                        filePath.add(BLNODirPath);
                        filePath.add(PONODirPath);
                        filePath.add(SONODirPath);
                        // added for doc type level--2005.11.27--samar
                        filePath.add(docTypeDirPath);
                        /* Access The Data from DataBase Temp Storage with Document Id And Store In This SO Folder */
                        /*Long Raw*/
                        try
                             InitialContext initialContext=new InitialContext();
                             int sfxid=0;
                             /*DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
                             OraclePooledConnection pc = new OraclePooledConnection("jdbc:oracle:thin:hr/hr@essoraclesvr:1521:essorcl","edoc","edoc");
                             Connection con=new DBCon().Connect();//pc.getConnection();
                             PreparedStatement pstm=con.prepareStatement("select SFX_FILE_ID from DOCUMENT where DOCUMENT_ID=?");
                             //getting context of the server
                             InitialContext documentCMPInitialContext=getInitialContext();
                             Object objDocumentCMPRef=null;
                             try{
                                  objDocumentCMPRef=documentCMPInitialContext.lookup("DocumentCMPBeanJNDI");
                             catch(Exception e)
                                   //logger.log(Level.SEVERE, "{0} : JNDI not found : {1}",new Object[] {"MSG002","DocumentCMPBeanJNDI"});
                                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.JNDINotFound","DocumentCMPBeanJNDI not found");
                             //Home interface reference of DocumentCMP EJB
                             //IDocumentCMPHome iDocumentCMPHomeRef=(IDocumentCMPHome)PortableRemoteObject.narrow(objDocumentCMPRef,IDocumentCMPHome.class);
                             IDocumentCMPHome iDocumentCMPHomeRef=(IDocumentCMPHome)objDocumentCMPRef;
                             IDocumentCMP documentCMPRef=null;
                             //Remote interface reference of DocumentCMP EJB
                             try{
                                  documentCMPRef=iDocumentCMPHomeRef.findByPrimaryKey(new Integer(DNO));
                             catch(Exception e)
                                  logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ObjectNotFound","Document Id not found");
                             /*pstm.setInt(1,Integer.parseInt(DNO));
                             ResultSet rs1=pstm.executeQuery();
                             if(rs1.next()){
                             sfxid=rs1.getInt(1);
                             sfxid=documentCMPRef.getSfxFileId().intValue();
                             logger.finer("sfxid==="+sfxid);
                             String strFile=documentCMPRef.getDocumentName().toString();
                             //SFX lookup
                             //InitialContext initialContext=new InitialContext();
                             Object sfxWebClient=null;
                             try{
                                    sfxWebClient=initialContext.lookup("SFXWebClientJNDI");
                             catch(Exception e)
                                  //NGP/JDK logging if JNDI not found
                                  //logger.log(Level.SEVERE, "{0} : JNDI not found : {1}",new Object[] {"MSG002","SFXWebClientJNDI"});
                                  logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.JNDINotFound","SFXWebClientJNDI not found");
                             iSFXWebClientSLHomeRef=(ISFXWebClientSLHome)PortableRemoteObject.narrow(sfxWebClient,ISFXWebClientSLHome.class);
                             iSFXWebClientSLRef=iSFXWebClientSLHomeRef.create();//SFXWebClient reference creation
                             if(iSFXWebClientSLRef!=null)
                                  //logger.finer("ffffffff---");
                                  int arrSFXFileId[]=new int[1];
                                  arrSFXFileId[0]=sfxid;
                                  Object objEFile[]=iSFXWebClientSLRef.retrieveDocument(argUserId,arrSFXFileId);
                                  if(objEFile.length>0)
                                       byte b[]=(byte[])objEFile[1];
                                       String f=strFile.substring(strFile.lastIndexOf(File.separator)+1,strFile.length());
                                       // changed(instead of SONODirPath now docTypeDirPath) for doc type level--2005.11.27--samar
                                       FileOutputStream fout=new FileOutputStream(docTypeDirPath+File.separator + f);
                                       //logger.finer("SONODirPath+File.separator + f---"+SONODirPath+File.separator + f);
                                       filePath.add(docTypeDirPath+File.separator + f);
                                       int j;
                                       for(j=0;j<b.length;j++)
                                            fout.write(b[j]);
                                       fout.close();
                                       //for auditing the document
                                       //logger.finer("Document download audited");
                                       boolean flagAudit=mlogOriginDocumentAudit("Document has been downloaded",Integer.parseInt(DNO),5,argUserId);
                                       //logger.finer("Audit complete"+flagAudit);
                                       if(logger.isFinerLoggable()) {
                                            logger.finer("Audit complete"+flagAudit);
                             //Delete after finish
                             tempRootFile.delete();
                         }catch(Exception e)
                             //e.printStackTrace();
                             logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Folder creation processing");
                        /* End Long Raw     */
                      }// end of while hasMoreTokens
               }// end of while hasMoreElements
         }else{ }
         /* Zip */
          try
              zipFolder(eDocPath+File.separator,eDocPath+".zip");
          }catch(Exception excp)
              ////logger.finer(excp.toString());
              logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Zip processing");
         // send the byte array for the file
         String fileName=eDocPath+".zip";
         try{
                   File file=new File(fileName);
                   InputStream is = new FileInputStream(file);
                   // Get the size of the file
                   long length = file.length();
                   // You cannot create an array using a long type.It needs to be an int type.
                   // Before converting to an int type,check to ensure that file is not larger than Integer.MAX_VALUE.
                   //Kept for future requirement if any
                   if (length > Integer.MAX_VALUE) {
                        // File is too large
                   // Create the byte array to hold the data
                    fileContent = new byte[(int)length];
                   // Read in the bytes
                   int offset = 0;
                   int numRead = 0;
                   while (offset < fileContent.length
                           && (numRead=is.read(fileContent, offset, fileContent.length-offset)) >= 0) {
                        offset += numRead;
                   // Ensure all the bytes have been read in
                   if (offset < fileContent.length) {
                        throw new IOException("Could not completely read file "+file.getName());
                   // Close the input stream and return bytes
                   is.close();
         }catch(Exception e){
          deleteDir(tempRootFileforDelete);
         //trying for deleting folder and zip file
         File file=new File(fileName);
         if(file.exists())
                 file.delete();
                 //logger.finer("File Deleted successfully");
         if(file.exists()){
                 //logger.finer("File Not Deleted ");
         /* File FileToDelete = new File(eDocPath+".zip");
         boolean  DelStatus1 = deleteDir(FileToDelete);
          //logger.finer("Deletion 1:"+DelStatus1 );
          File FolderToDelete = new File(eDocPath);
         boolean  DelStatus2 = deleteDir(FolderToDelete);
          //logger.finer("Deletion 2:"+DelStatus2);
          for(int index=filePath.size()-1;index>=0;index--)
               File delFile=new File(filePath.elementAt(index).toString());
               //logger.finer(delFile.getAbsolutePath());
               if(delFile.exists())
                    //logger.finer("Before delete---123");
                    //logger.finer("File Deleted========>"+delFile.delete());
                    //logger.finer("After delete---123");
                    //logger.finer(delFile.getAbsolutePath()+"-----------"+delFile.exists());
          return fileContent;
    /* ***************************Start DIR *********************/
    private  String DoFolder(String folderNname)
         File f;
         f = new File(folderNname);
         f.mkdir();                                                   // Create The Folder
       //f.deleteOnExit();                                  //R n D to Delete The zip folders only  */
         return(folderNname+File.separator);
    //to create the folder
    private String CreateFolder(String FolderName,String newFolderPath)
              String NewDir ="";
              NewDir=newFolderPath + FolderName;
              newFolderPath=DoFolder(NewDir);
              return(NewDir);
    //To zip the folder
    private void zipFolder(String srcFolder, String destZipFile)
         ZipOutputStream zip =  null;
         FileOutputStream fileWriter = null;
              try
                   fileWriter = new FileOutputStream(destZipFile);
                   zip = new ZipOutputStream(fileWriter);
                   //required for XP compress
                   zip.setMethod(ZipOutputStream.DEFLATED);
                zip.setLevel(Deflater.DEFAULT_COMPRESSION); //use default level
              }catch (Exception ex){
                   ex.printStackTrace();
                   System.exit(0);
              addFolderToZip("", srcFolder, zip);
              try
                   zip.flush();
                   zip.close();
                   zip=null;
                   fileWriter.close();
                   fileWriter = null;
              }catch (Exception ex)
                   //ex.printStackTrace();
                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Zip folder processing");
         //     File f2= new File(destZipFile);
    *  Write the content of srcFile in a new ZipEntry, named path+srcFile,of the zip stream
    *  The result is that the srcFile will be in the path folder in the generated archive.
    *  @param path          String, the relative path with the root archive.
    *  @param srcFile     String, the absolute path of the file to add
    *  @param zip          ZipOutputStram, the stream to use to write the given file.
    //the folders are added to zip file
    private void addToZip(String path, String srcFile, ZipOutputStream zip)
         File folder = new File(srcFile);
         //folder.deleteOnExit();
         if (folder.isDirectory()) {
              addFolderToZip(path, srcFile, zip);
         else {
              //Transfer bytes from in to out
              byte[] buf = new byte[1024];
              int len;
              FileInputStream in = null;
              try {
                   in = new FileInputStream(srcFile);
                   // void putNextEntry(ZipEntry e) Begins writing a new ZIP file entry
                   // and positions the stream to the start of the entry data.
                   zip.putNextEntry(new ZipEntry(path +File.separator+ folder.getName()));
                   while ((len = in.read(buf)) > 0)
                        zip.write(buf, 0, len);
              }catch (Exception ex){
                   ex.printStackTrace();
                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Adding to Zip Folder");
              }finally{
                   try
                        //2005-12-01::file pointer close
                        in.close();
                   }catch(Exception e){
                        e.printStackTrace();
                        logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Adding to Zip Folder");
         folder.delete(); //we addedd for DELETE
    * add the srcFolder to the zip stream.
    * @param path          String, the relatif path with the root archive.
    * @param srcFile     String, the absolute path of the file to add
    * @param zip          ZipOutputStram, the stream to use to write the given file.
    private void addFolderToZip(String path, String srcFolder, ZipOutputStream zip)
         File folder = new File(srcFolder);
         folder.canWrite();
         //folder.deleteOnExit();
         String fileListe[] = folder.list();
         try
              int i = 0;
              while (true)
              addToZip(path+File.separator+ folder.getName(), srcFolder+File.separator+fileListe, zip);
              i++;
         }catch (Exception ex)
         logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in Naming after adding to Zip Folder");
    /* $$$$$$$$$$$$$$$$$           End Zipping               $$$$$$$$$$$$$$$ */
    /****************Start Of Deleting Directory from server***********/
    public boolean deleteDir(File dir) {
         // to see if this directory is actually a symbolic link to a directory,
         // we want to get its canonical path
         //- that is, we follow the link to the file it's actually linked to
         File candir;
         try {
              candir = dir.getCanonicalFile();
         } catch (IOException e) {
              return false;
         // a symbolic link has a different canonical path than its actual path,
         // unless it's a link to itself
         if (!candir.equals(dir.getAbsoluteFile())) {
              //this file is a symbolic link, and there's no reason for us to follow it,
              //because then we might be deleting something outside of the directory we were told to delete
              return false;
         // now we go through all of the files and subdirectories in the directory and delete them one by one
         File[] files = candir.listFiles();
         if (files != null) {
         for (int i = 0; i < files.length; i++) {
              File file = files[i];
              //file read only set false
              //in case this directory is actually a symbolic link, or it's empty,
              //we want to try to delete the link before we try anything
              boolean deleted = file.delete();
              if (!deleted) {
                   // deleting the file failed, so maybe it's a non-empty directory
                   if (file.isDirectory()) deleteDir(file);
                   // otherwise, there's nothing else we can do
         // now that we tried to clear the directory out, we can try to delete it again
         return dir.delete();
    /************End Of Deleting Directory *********************/
    private InitialContext getInitialContext() throws NamingException {
    try {
    return new InitialContext();
    } catch (NamingException ne) {
    //logger.finer("Please make sure that the server is running.");
    throw ne;
    //*****************************WEB SERVICE FILE RETRIEVE IMPLEMENTATION FOR MPS PEOPLE*************************************************
    * <b>
    * Used for Retrieval of a document.
    * </b>
    * This function is called from retrieveDocument function of MPStoEdocWebServiceSLBean.
    * <p>
    * @param argUserId User Id of the user who wants to retrieve the document
    * @param argSfxFileId[] Sfx File Id which gives the reference number of the document(s) in the SFX database.
    * @return Returns a one dimentional Object array containing a series of file name and file content of the retrieved documents.
    public Object[] mpsDocumentView(String argUserId,Integer[] argSfxFileId) throws RemoteException
         //NGP/JDK logging
         logger.finer("mpsDocumentView called--");
         try{
              argUserId=argUserId.toUpperCase();
         catch(Exception e)
              e.printStackTrace();
         logger.finer("mpsDocumentView argSfxFileId[0]--"+argSfxFileId[0]);
         Object[] searchResult=null;
         /*FileHandler handler = null;
    Logger logger=null;
         int finalIndex=0;
         try
    //PropertiesFileReader propertiesFileReaderRef=new PropertiesFileReader();
         //String logFile=propertiesFileReaderRef.getProperties("/edoc.properties","EDOC_LOG");
    //handler = new FileHandler("eDoc.log",0,1, true);
    //logger = Logger.getLogger("ErrorMsg");
    //logger.addHandler(handler);
    //logger.setLevel(Level.ALL);
    }catch(Exception excp)
         //NGP/JDK Logging warning
         //logger.log(Level.WARNING, "{0} : Unable to find Resource Bundle File : {1}",new Object[] {"MSG001","ErrorMsg"});
         logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.JNDINotFound","PurchaseOrderCMPBeanJNDI not found");
         Object objDocumentFile[]=null;
         ISFXWebClientSLHome iSFXWebClientSLHomeRef=null;
         ISFXWebClientSL iSFXWebClientSLRef=null;
         try{
              //Locating SFX WEB CLIENT SESSION BEAN
              InitialContext initialContext=new InitialContext();
              Object sfxWebClient=null;
              try{
                   sfxWebClient=initialContext.lookup("SFXWebClientJNDI");
              catch(Exception e)
                   //NGP/JDK Logging if JNDI not found
                   //logger.log(Level.SEVERE, "{0} : JNDI not found : {1}",new Object[] {"MSG002","SFXWebClientJNDI"});
                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.JNDINotFound","SFXWebClientJNDI not found");
              iSFXWebClientSLHomeRef=(ISFXWebClientSLHome)PortableRemoteObject.narrow(sfxWebClient,ISFXWebClientSLHome.class);
              //creation of SFX we client
              iSFXWebClientSLRef=iSFXWebClientSLHomeRef.create();
              int arrSFXFileId[]=new int[argSfxFileId.length];
              logger.finer("SFXWebClient created----");
              //holds the sequence of SFX file id in the array
              //EFile file=new EFile();
              //getting context of the server
              InitialContext documentCMPInitialContext=getInitialContext();
         Object objDocumentCMPRef=null;
         int docId=0;
         try{
              objDocumentCMPRef=documentCMPInitialContext.lookup("DocumentCMPBeanJNDI");
         catch(Exception e)
                   //NGP/JDK Logging if JNDI not found
                   //logger.log(Level.SEVERE, "{0} : JNDI not found : {1}",new Object[] {"MSG002","DocumentCMPBeanJNDI"});
                   logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.JNDINotFound","DocumentCMPBeanJNDI not found");
         //Home interface reference of DocumentCMP EJB
         //IDocumentCMPHome iDocumentCMPHomeRef=(IDocumentCMPHome)PortableRemoteObject.narrow(objDocumentCMPRef,IDocumentCMPHome.class);
              IDocumentCMPHome iDocumentCMPHomeRef=(IDocumentCMPHome)objDocumentCMPRef;
         //find the document id in the Document table from the SFx File Id
              for(int index=0;index<argSfxFileId.length;index++)
                   arrSFXFileId[index]=argSfxFileId[index].intValue();
                   logger.finer("mpsDocumentView arrSFXFileId[index]--"+arrSFXFileId[index]);
         logger.finer("For Document auditing----");
         //Remote interface reference of DocumentCMP EJB
         IDocumentCMP iDocumentCMPRef=iDocumentCMPHomeRef.findDocIdBySfxId(new Integer(arrSFXFileId[index]));
                   docId=iDocumentCMPRef.getDocumentId().intValue();
                   //for document audit
                   try{
                        boolean flagAudit=mlogOriginDocumentAudit("Document is Viewed",docId,5,argUserId);
                   catch(Exception e)
                        //logger.finer("Document cannot be audited----");
                        logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in audit processing");
              //call the retrieveDocument method for the above array of elements
              //Object[] tempObjDocumentFile=iSFXWebClientSLRef.retrieveDocument(argUserId,arrSFXFileId);
              //EFile file=new EFile();
              //for(int index=0;index<tempObjDocumentFile.length;index++){
              //     file= (EFile) tempObjDocumentFile[index];
              //     objDocumentFile[finalIndex++]=file.getDocFileName();
              //     objDocumentFile[finalIndex++]=file.getDocFileContent();
              objDocumentFile=iSFXWebClientSLRef.retrieveDocument(argUserId,arrSFXFileId);
              //EFile[] efileArray = (EFile[]) = objDocumentFile;
              searchResult = new Object[efileArray.length*2];
              for (int i=0;i<efileArray.length;i=i+2)
                   EFile currentFile = efileArray[i];
                   searchResult[i] = currentFile.getDocFileName();
                   searchResult[i+1] = currentFile.getDocFileContent();
              searchResult=iSFXWebClientSLRef.retrieveDocument(argUserId,arrSFXFileId);
         }//end of try
         catch(Exception expt)
              //logger.finer(expt);
              logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in retrieve from SFX");
         //if exception occurs returns null as per initilisation above
         //logger.finer("mpsDocumentView size--"+objDocumentFile.length);
         return searchResult;
    //**************************** FILE RETRIEVE IMPLEMENTATION FOR MLOG PEOPLE*******************************
    * <b>
    * Used for Retrieval of a document.
    * </b>
    * This function is called from struts.
    * <p>
    * @param argDocumentId Documnet Id which gives the ID of the document in the eDoc database..
    * @param argUserId User Id of the user who wants to retrieve the document
    * @return Returns a one dimentional Object array containing a series of file name and file content of the retrieved documents.
    public Object[] mlogOriginDocumentView(int argDocumentId,String argUserId) throws RemoteException
         //NGP/JDK Logging
         logger.finer("mlogOriginDocumentView called--");
         try{
              argUserId=argUserId.toUpperCase();
         catch(Exception e)
              //e.printStackTrace();
              logger.log("net.mlog.edoc.ejb.session.EdocRetrieveServiceSLBean.ProcessException","Exception in uppercase");
    //logger.finer("mlogOriginDocumentView-- argDocumentId---"+argDocumentId);
         /*FileHandler handler = null;
    Logger logger=null;
         try
    //PropertiesFileReader propertiesFileReaderRef=new PropertiesFileReader();
         //String logFile=propertiesFileReaderRef.getProperties("/edoc.properties","EDOC_LOG");
    //handler = new FileHandler("eDoc.log",0,1, tr

  • Using java.util.zip.ZipFile

    I have files that are about 4GB (with possible growth in the future) that will be sent to a file system and a java process will be used to unzip them.
    Is there a size limit for unzipping files using java.util.zip.ZipFile?
    annie

    Chicon wrote:
    Hi annie613,
    Indeed, there's a size limit of 2GB for unzipping files, more precisely when the size of the inflated file reaches 2GB !
    Edit : inflated instead of deflated
    Edited by: Chicon on Jun 29, 2009 3:56 PMHmm, this blog says that the current limit of 4GB has been expanded by implementing ZIP64 support in OpenJDK7 build(b55).
    [http://blogs.sun.com/xuemingshen/entry/zip64_support_for_4g_zipfile]

  • Unzipping gives java.util.zip.ZipException: invalid stored block lengths

    When i try to unzip a file using java.util.zip i get the following exception
    java.util.zip.ZipException: invalid stored block lengths
    Can anyone offer any suggestions as to why this is happening?

    GZIPInputStream use mark(), reset()...
    So the InputStream you use in the constructor of GZIPInputStream must be able to handle these method.
    The simple way to achieve this is:
    new GZIPInputStream(new BufferedInputStream(yourInputStream));

  • Zipping files in a folder using java.util.zip

    hi guys,
    does any body has the java code for
    zipping files in a folder
    hi guys,
    actually i want to zip no of files in a folder .the folder can also have sub folder
    and after zipping when i extract the files manually i should
    maintain the same folder structure
    does any body has the code
    please reply me soon its a bit urgent

    hi smeee
    i tried running ur code but its not working
    here the command
    java c:\abc\ zzz.zip
    its saying
    no files or directories even though there's the
    directory present
    what's the solution Hi,
    Oops that was because of the error check added at the last moment..
    Anyway, You need to use the following command to run it :
    java ZipUtility c:\abc c:\zzz.zip
    Please use the following corrected code:
         Class to zip file(s).
         Requires jdk1.3.1.
         To run use the following command:
         java ZipUtility <directory or file to be zipped> <name of zip file to be created>
         Please specify absolute path names as its parameters while running this program.
    import java.util.zip.*;
    import java.io.*;
    public class ZipUtility {
         ZipOutputStream cpZipOutputStream = null;
         String strSource = "";
         String strTarget = "";
         String strSubstring = "";
         public static void main(String args[]) {
              if(     args == null || args.length < 2) {
                   System.out.println("Usage: java ZipUtility <directory or file to be zipped> <name of zip file to be created>");
                   return;
              ZipUtility udZipUtility = new ZipUtility();
              udZipUtility.strSource = args[0];
              udZipUtility.strTarget = args[1];
              udZipUtility.zip();
         private void zip(){
                        try
                             File cpFile = new File (strSource);
                             if (!cpFile.isFile() && !cpFile.isDirectory() ) {
                                  System.out.println("\nSource file/directory Not Found!");
                                  return;
                             if  (cpFile.isDirectory()) {
                                  strSubstring = strSource;;
                             } else {
                                  strSubstring = "";
                             cpZipOutputStream = new ZipOutputStream(new FileOutputStream(strTarget));
                             cpZipOutputStream.setLevel(9);
                             zipFiles( cpFile);
                             cpZipOutputStream.finish();
                             cpZipOutputStream.close();
                             System.out.println("\n Finished creating zip file " + strTarget + " from source " + strSource);
                        }catch (Exception e){
                             e.printStackTrace();
         private void  zipFiles(File cpFile) {
                   if (cpFile.isDirectory()) {
                        File [] fList = cpFile.listFiles() ;
                        for (int i=0; i< fList.length; i++){
                             zipFiles(fList) ;
                   } else {
                        try {
                             String strAbsPath = cpFile.getAbsolutePath();
                             String strZipEntryName ="";
                             if (!strSubstring.equals("") ){
                                  strZipEntryName = strAbsPath.substring(strSource.length()+1, strAbsPath.length());
                             } else {
                                  strZipEntryName = cpFile.getName();
                             byte[] b = new byte[ (int)(cpFile.length()) ];
                             FileInputStream cpFileInputStream = new FileInputStream (cpFile) ;
                             int i = cpFileInputStream.read(b, 0, (int)cpFile.length());
                             ZipEntry cpZipEntry = new ZipEntry(strZipEntryName);
                             cpZipOutputStream.putNextEntry(cpZipEntry );
                             cpZipOutputStream.write(b, 0, (int)cpFile.length());
                             cpZipOutputStream.closeEntry() ;
                        } catch (Exception e) {
                             e.printStackTrace();

  • Java.util.zip: how to save file type

    HI,
    I have a written a program that zips PDF files and sends them as an attachment via email. This have been running daily for the last 1.5 years with no problems. Recently, some email providers have been striping the attachments or refusing the email, because I have used two file suffix on the attachment, e.g report.pdf.zip. I did this so that when the file is unzipped the .pdf extension remains and file is recognised, otherwise the document is treated as plain text or unknown format. How can I include the filetype in the zipped file, so that I can have report.pdf become report.zip, then when the user unzips the file has report.zip become report.pdf. I know the filetype is stored in the zip header, but I don't know how to do this using java.util.zip. Any help would be appreciated.
    Mike

    You see, zip files are inherently dumb. They don't "actually" have a file system in the strictest sense. The zip file format merely associates a String ID with some bytes. It's all on the client side where the magic happens. if I have three zip entries in a file, these are the entry names.
    1.) somedir/myfile.txt
    2.) someotherdir/myfile.txt
    3.) README
    when a client "unzipper" see these names, it realizes that "/" is a directory separator, so it makes the appropriate directories and places the bytes into files of that given name.
    So all you should have to do is make the zip entry with a name that ends in .pdf The client should do the rest.

  • Bug on native code of OJVM java.util.zip.CRC32.updateBytes(CRC32.java)

    I want to unzip OpenOffice 1.0 files inside the OJVM but it fails into the native method java.util.zip.CRC32.updateBytes(CRC32.java).
    The first execution of the code runs OK, but the second not.
    After a long wait it shutdown the connection and the oracle trace file shows an stack trace like this:
    *** 2003-04-18 11:31:31.926
    *** SESSION ID:(17.97) 2003-04-18 11:31:31.926
    java.lang.IllegalArgumentException
    at java.util.zip.CRC32.updateBytes(CRC32.java)
    at java.util.zip.CRC32.update(CRC32.java)
    at java.util.zip.ZipInputStream.read(ZipInputStream.java)
    at oracle.xml.parser.v2.XMLByteReader.fillByteBuffer(XMLByteReader.java:354)
    at oracle.xml.parser.v2.XMLUTF8Reader.fillBuffer(XMLUTF8Reader.java:142)
    at oracle.xml.parser.v2.XMLByteReader.saveBuffer(XMLByteReader.java:448)
    at oracle.xml.parser.v2.XMLReader.fillBuffer(XMLReader.java:2012)
    at oracle.xml.parser.v2.XMLReader.skipWhiteSpace(XMLReader.java:1800)
    at oracle.xml.parser.v2.NonValidatingParser.parseMisc(NonValidatingParser.java:305)
    at oracle.xml.parser.v2.NonValidatingParser.parseProlog(NonValidatingParser.java:274)
    at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:254)
    at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:225)
    at com.prism.cms.frontend.EditPropertiesActions.processUpload(EditPropertiesActions.java:1901)
    Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x6d3a74a0, PC: [0x40263600, eomake_reference_to_eobjec
    t()+80]
    Registers:
    %eax: 0x54a54000 %ebx: 0x40429c20 %ecx: 0x54a546bf
    %edx: 0x6d3a7478 %edi: 0x402b27d0 %esi: 0x45c718ac
    %esp: 0xbfffbf20 %ebp: 0xbfffbf48 %eip: 0x40263600
    %efl: 0x00010206
    The code of the java method is:
    public static void processUpload(String id_page, String longname,
    String filename, String filetype,
    String s00)
    throws SQLException {
    Integer p_id = new Integer(id_page);
    String toSource;
    XMLDocument doc = null;
    DOMParser theParser = null;
    InputStream XSLStream = null;
    BufferedWriter out = null;
    #sql { select path||name||'.html' into :toSource from pages where id_page=:p_id };
    if ("Cancel".equalsIgnoreCase(s00)) {
    Jxtp.redirecUrl("/dbprism/ldoc/live/edit.html?p_source="+toSource);
    return;
    if ("no-file".equals(filename) && "no-contenttpye".equals(filetype)) {
    Jxtp.redirecUrl("/dbprism/ldoc/live/edit.html?p_source="+toSource);
    return;
    if ("xml".equalsIgnoreCase(filetype))
    #sql { call CMSj.moveFromUpload(:filename,:p_id) };
    else if ("sxw".equalsIgnoreCase(filetype)) {
    XSLProcessor processor = new XSLProcessor();
    XSLStylesheet theXSLStylesheet = null;
    BLOB locator = null;
    // open sxw file, it will be in zip format with a file named content.xml
    // then convert content.xml to document-v10.dtd with an stylesheet
    #sql { select blob_content into :locator from wpg_document where name = :filename for update };
    ZipInputStream zin = new ZipInputStream(locator.binaryStreamValue());
    ZipEntry entry;
    try {
    while((entry=zin.getNextEntry())!=null)
    if ("content.xml".equalsIgnoreCase(entry.getName())) {
    Integer newVersion;
    CLOB dstDoc;
    CMSDocURLStreamHandlerFactory.enableCMSDocURLs();
    try {
    URL inUrl = new URL("cms:/stylesheets/sxw2document-v10.xsl");
    XSLStream = inUrl.openStream();
    // Create the Stylesheet from the stream
    theXSLStylesheet = processor.newXSLStylesheet(XSLStream);
    // Stores the document processing it with the given stylesheet
    theParser = new DOMParser();
    theParser.setValidationMode(theParser.NONVALIDATING);
    theParser.setBaseURL(new URL("cms:/dtd/"));
    theParser.parse(zin);
    doc = theParser.getDocument();
    #sql { SELECT NVL(MAX(version),0)+1 INTO :newVersion FROM content
    WHERE cn_id_page = :p_id };
    #sql { INSERT INTO content( cn_id_page, version, owner, status, source_file,
    file_size, content, created, modified, created_by,
    modified_by)
    VALUES ( :p_id, :newVersion, sys_context('cms_context','user_id'),
    'Uploaded', :filename, 0 , EMPTY_CLOB(), SYSDATE, SYSDATE,
    sys_context('cms_context','user_id'),
    sys_context('cms_context','user_id')) };
    #sql { SELECT content INTO :dstDoc FROM content
    WHERE cn_id_page = :p_id AND version = :newVersion for update };
    #sql { call DBMS_LOB.trim(:inout dstDoc,0) };
    out = new BufferedWriter(dstDoc.getCharacterOutputStream(),dstDoc.getChunkSize());
    processor.processXSL(theXSLStylesheet, doc, new PrintWriter(out));
    #sql { delete from wpg_document where name=:filename };
    } catch (SAXParseException spe) {
    throw new SQLException("processUpload SAXParseException: "+xmlError(spe));
    } catch (SAXException se) {
    throw new SQLException("processUpload SAXException: "+se.getLocalizedMessage());
    } catch (XSLException xsle) {
    throw new SQLException("processUpload XSLException: "+xsle.getLocalizedMessage());
    } finally {
    if (XSLStream!=null)
    XSLStream.close();
    if (theParser!=null)
    theParser = null;
    if (out!=null) {
    out.flush();
    out.close();
    zin.close();
    } catch (IOException ioe) {
    throw new SQLException("processUpload IOException: "+ioe.getLocalizedMessage());
    } finally {
    if (XSLStream!=null)
    XSLStream = null;
    if (out!=null)
    out = null;
    if (zin!=null)
    zin = null;
    Jxtp.redirecUrl("/dbprism/ldoc/live/edit.html?p_source="+toSource);
    Basically it takes the content from a BLOB column of the wpg_document table, unzip it using java.util.zip package, look for the file content.xml and parse it using Oracle XML toolkit.
    Using an open source utility which replace java.util.package (http://jazzlib.sourceforge.net/) it works perfect because is a pure java application.
    Best regards, Marcelo.
    PD: I am using Oracle 9.2.0.2 on Linux.

    The cause of errors was a dying Westen Digital drive, specially the 48G partition reserved only for $ORACLE_BASE (/dev/sdb3 mounted on /opt/oracle).
    A simple quick scan of unmounted partition (badblocks -v /dev/sdb3) reported more than thousand new bad blocks (compared to the last scan six months ago). Although I strongly believe, specially in the case of WDC drives, that the best utility to "repair" bad blocks is the one that opens a window and prints the message: "Go to the nearest shop and buy a new drive", I was very curious to prove my suspicion just on this drive. After zero-filling the partition with dd, then formatting it (mke2fs -cc) and mounting again, the 11g installation and database creation (on the same partition) successfully completed, performing fast and smoothly. To make sure it was not a casual event, I repeated the installation once again with full success. The database itself is working fine (by now). Well, the whole procedure took me more than four hours, but I'm pretty satisfied. I learned once again - stay away from Western Digital. As Oracle cannot rely on dying drive, my friend is going tomorrow to spend a 150+ euro on two 250G Seagate Barracudas and replace both WDC drives, even though the first drive seems to be healthy.
    In general there is no difference between loading correct data from good disk into bad memory and loading the incorrect data from dying disk into good memory. In both cases the pattern is damaged. For everyone who runs into the problem similar to this, and the cause cannot be easily determined, the rule of thumb must be:
    1. test memory and, if it shows any error, check sockets and test memory modules individually
    2. check disks for bad blocks regardless of the result of memory testing
    Therefore I consider your answer being generally correct.
    Regards
    NJ

  • Java.util.zip

    Hi,
    I'm using java.util.zip package and I want to remove the directory
    structure from the zipped files. How to make a ZipEntry without having the directory path of the original file in the zipped file.
    Thanks in Advance
    Carlos

    Carlos
    What you need to do is create a ZipEntry for that file without the directory structure on it.
    The sample snippet below will archive a directory and all it's subdirectories, creating a zip file with the base name, inside a specified storage location. All the files in the zip are created relative to the base dir.
    Hope it helps,
    Neil
    :o)
      static final int BUFFER = 2048;
      public void zip() throws Exception
            File dirToArchive = new File("C:\Test\ZipMe");
            File storagePlace = new File("C:\Zips");
         ArrayList allFilesToZip = new ArrayList();
         this.getFiles(allFilesToZip, dirToArchive);
         String storeName = this.storagePlace.getAbsolutePath()+File.separator+dirToArchive.getName()+".zip";
         FileOutputStream dest = new FileOutputStream(storeName);
         ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
         byte data[] = new byte[BUFFER];
         BufferedInputStream origin = null;
         for (Iterator itr = allFilesToZip.iterator(); itr.hasNext();)
           File current = (File)itr.next();
           System.out.println("Adding : "+current.getName());
           if (current.isFile()) // skip dirs, don't need them
             FileInputStream fi = new FileInputStream(current);
             origin = new BufferedInputStream(fi, BUFFER);
             String newEntryName = current.getAbsolutePath();
                // cut off the front of the file's absolute path the same
                // number of characters as our parent archive directory has
                // plus one for the file seperator
                // This leaves us with a 'relative' path name for the entry
                // I've left the code here for a little clarity on what's going on
                // but you'll want to put the calculation in a local variable
                // outside the loop as it doesn't change
                newEntryName = newEntryName.substring(this.dirToArchive.getAbsolutePath().length()+1);
             ZipEntry entry = new ZipEntry(newEntryName);
             out.putNextEntry(entry);
             int count;
             while((count = origin.read(data, 0, BUFFER)) != -1)
                out.write(data, 0, count);
             origin.close();
         out.close();
       private void getFiles(ArrayList inHere, File dir)
          File[] files = dir.listFiles();
          for (int i=0; i<files.length; i++)
            File current = files;
         inHere.add(current);
         if (current.isDirectory())
              getFiles(inHere, current); // recurse

  • IOException java.util.zip.ZipException: error in opening zip file

    Hi Folks,
    In my application one Zip file will be placed in the server. to unzip that zip file i have used java.util.Zip.
    It is working fine.but some times it gets the following error.
    **IOException java.util.zip.ZipException: error in opening zip file**
    why is it so? but very rarely. I couldnt identify the exact scenario, where it causes the problem.
    Normally that zip file contains set of images of customer.
    Please share your inputs.
    Thanks,
    Balu.

    Thanks for ur reply.
    EJB is not used in my application.
    VC++ application at customer side prepares the zip file, and it will upload that zip to te server using ftp.
    After uploading done, at the server end one java program(contains main function) will access that folder to unzip.
    Thanks,
    Balu.

  • Re: RE: Re: Webb Exception - java.util.zip.ZipException: error in opening zip

    Instead of uploading the servlet via the WL Console, try FTPing it into the
              applications directory and starting up WL
              "robert wright" <[email protected]> wrote in message
              news:3b96bd64$[email protected]..
              > I am having this problem as well has anyone found a solution?
              

    I have the same problem using FTP and hotdeploy, when i try to upload the application, half of the times it fails with the "error in opening zip file
              at java.util.zip.ZipFile.open(Native Method)
              at java.util.zip.ZipFile.<init>(Unknown Source)"
              I dont know why it happens, it seemed that was needed more space, but now, it has enough space for everything in everywhere...
              Has anybody another idea?
              

  • When preview a portal application's iview throws java.util.zip.ZipException

    this is the exception info who can help me ,thank you!
    java.util.zip.ZipException: error in opening zip file
         at java.util.zip.ZipFile.open(Native Method)
         at java.util.zip.ZipFile.<init>(ZipFile.java:111)
         at java.util.zip.ZipFile.<init>(ZipFile.java:127)
         at com.sapmarkets.bam.jmxadapter.AbstractLog.getArchiveInfo(AbstractLog.java:328)
         at com.sapmarkets.bam.jmxadapter.AbstractLog.getArchives(AbstractLog.java:455)
         at com.sapmarkets.bam.jmxadapter.AbstractLog.getArchives(AbstractLog.java:478)
         at sun.reflect.GeneratedMethodAccessor729.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.getAttribute(DefaultMBeanInvoker.java:129)
         at javax.management.StandardMBean.getAttribute(StandardMBean.java:229)
         at com.sap.pj.jmx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:1296)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.getAttribute(MBeanServerWrapperInterceptor.java:181)
         at com.sap.engine.services.jmx.CompletionInterceptor.getAttribute(CompletionInterceptor.java:309)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.getAttribute(BasicMBeanServerInterceptor.java:169)
         at com.sap.jmx.provider.ProviderInterceptor.getAttribute(ProviderInterceptor.java:195)
         at com.sap.engine.services.jmx.RedirectInterceptor.getAttribute(RedirectInterceptor.java:232)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.getAttribute(MBeanServerInterceptorChain.java:124)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.getAttribute(MBeanServerSecurityWrapper.java:234)
         at com.sap.engine.services.jmx.ClusterInterceptor.getAttribute(ClusterInterceptor.java:522)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.getAttribute(MBeanServerInterceptorChain.java:124)
         at com.sapmarkets.bam.logcontroller.jmx.LogControllerFacade.getLogInfo(LogControllerFacade.java:227)
         at com.sapmarkets.bam.logcontroller.jmx.LogControllerFacade.getLogInfosWithPattern(LogControllerFacade.java:193)
         at com.sapmarkets.bam.logcontroller.jmx.LogControllerFacade.getLogInfos(LogControllerFacade.java:174)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.getAttribute(DefaultMBeanInvoker.java:129)
         at javax.management.StandardMBean.getAttribute(StandardMBean.java:229)
         at com.sap.pj.jmx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:1296)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.getAttribute(MBeanServerWrapperInterceptor.java:181)
         at com.sap.engine.services.jmx.CompletionInterceptor.getAttribute(CompletionInterceptor.java:309)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.getAttribute(BasicMBeanServerInterceptor.java:169)
         at com.sap.jmx.provider.ProviderInterceptor.getAttribute(ProviderInterceptor.java:195)
         at com.sap.engine.services.jmx.RedirectInterceptor.getAttribute(RedirectInterceptor.java:232)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.getAttribute(MBeanServerInterceptorChain.java:124)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.getAttribute(MBeanServerSecurityWrapper.java:234)
         at com.sap.engine.services.jmx.ClusterInterceptor.getAttribute(ClusterInterceptor.java:522)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.getAttribute(MBeanServerInterceptorChain.java:124)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.tc.logviewer.mbean.LocalLVMBeanServer.invoke(LocalLVMBeanServer.java:73)
         at $Proxy164.getAttribute(Unknown Source)
         at com.sapmarkets.bam.application.logdepot.AbstractLogDepot.getAttribute(AbstractLogDepot.java:236)
         at com.sapmarkets.bam.application.logdepot.AbstractLogDepot.getLogDescriptors(AbstractLogDepot.java:84)
         at com.sap.tc.logviewer.mbean.ServerModelLogDepot.getLogDescriptors(ServerModelLogDepot.java:79)
         at com.sap.tc.logviewer.mbean.ServerModelLogDepotGroup$GetLogDescriptorsTask.run(ServerModelLogDepotGroup.java:60)
         at com.sap.tc.logviewer.mbean.ServerModelLogDepotGroup.execute(ServerModelLogDepotGroup.java:173)
         at com.sap.tc.logviewer.mbean.ServerModelLogDepotGroup.getLogDescriptors(ServerModelLogDepotGroup.java:119)
         at com.sap.tc.logviewer.mbean.LogviewerServer.getLogs(LogviewerServer.java:137)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.invoke(DefaultMBeanInvoker.java:58)
         at javax.management.StandardMBean.invoke(StandardMBean.java:286)
         at com.sap.pj.jmx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:944)
         at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.invoke(MBeanServerWrapperInterceptor.java:288)
         at com.sap.engine.services.jmx.CompletionInterceptor.invoke(CompletionInterceptor.java:409)
         at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.invoke(BasicMBeanServerInterceptor.java:277)
         at com.sap.jmx.provider.ProviderInterceptor.invoke(ProviderInterceptor.java:258)
         at com.sap.engine.services.jmx.RedirectInterceptor.invoke(RedirectInterceptor.java:340)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:330)
         at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.invoke(MBeanServerSecurityWrapper.java:287)
         at com.sap.engine.services.jmx.ClusterInterceptor.invoke(ClusterInterceptor.java:776)
         at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:330)
         at com.sap.tc.logviewer.client.j2ee.J2EELogviewerServerInvoker.invoke(J2EELogviewerServerInvoker.java:111)
         at com.sap.tc.logviewer.client.j2ee.J2EELogviewerServerProxy.getLogs(J2EELogviewerServerProxy.java:105)
         at com.sap.tc.logviewer.client.base.LogviewerClientImpl.getLogs(LogviewerClientImpl.java:114)
         at com.sap.lm.webadmin.logviewer.impl.LV_View.getLogs(LV_View.java:831)
         at com.sap.lm.webadmin.logviewer.impl.LV_View.fetchLogs(LV_View.java:801)
         at com.sap.lm.webadmin.logviewer.impl.LV_View.fetchView(LV_View.java:484)
         at com.sap.lm.webadmin.logviewer.impl.LV_View.fetchView(LV_View.java:464)
         at com.sap.lm.webadmin.logviewer.impl.LV_View.fetchView(LV_View.java:460)
         at com.sap.lm.webadmin.logviewer.impl.LVUI.openView(LVUI.java:609)
         at com.sap.lm.webadmin.logviewer.impl.LVUI.openView(LVUI.java:577)
         at com.sap.lm.webadmin.logviewer.impl.LVUI.openView(LVUI.java:573)
         at com.sap.lm.webadmin.logviewer.LVView.onActionOpenSingleView(LVView.java:1648)
         at com.sap.lm.webadmin.logviewer.wdp.InternalLVView.wdInvokeEventHandler(InternalLVView.java:1560)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:319)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)

    Hi,
    Check this thread it will resolve your issue.
    server startup error logs EP 60 Sp2 patch4 Solaris
    Regards,

  • Java.util.zip.ZIPException in clusters??

    Hi,
              am getting this problem.
              Iam working on NT.
              thanks
              vallabh
              Mon Nov 22 04:15:10 GMT+05:30 1999:<I> <WebLogicServer> WebLogic Server
              started
              java.util.zip.ZipException: error in opening zip file
              at java.util.zip.ZipFile.open(Native Method)
              at java.util.zip.ZipFile.<init>(ZipFile.java:69)
              at java.util.zip.ZipFile.<init>(ZipFile.java:84)
              at
              weblogic.boot.ServerClassLoader.deploy(ServerClassLoader.java:132)
              at
              weblogic.cluster.AnnotatedServiceOffer.expandClassPath(AnnotatedServiceOffer.java:74)
              at
              weblogic.cluster.AnnotatedServiceOffer.readObject(AnnotatedServiceOffer.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readPublicSerializable(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readLeftover(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readObjectBody(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readObject(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readObjectWL(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readArrayList(WLObjectInputStreamBase.java,
              Compiled Code)
              at weblogic.cluster.StateDump.readObject(StateDump.java:59)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readPublicSerializable(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readLeftover(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readObjectBody(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readObject(WLObjectInputStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectInputStreamBase.readObjectWL(WLObjectInputStreamBase.java,
              Compiled Code)
              at weblogic.cluster.TMSocket.execute(TMSocket.java, Compiled
              Code)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java,
              Compiled Code)
              Mon Nov 22 04:15:20 GMT+05:30 1999:<E> <MulticastSocket> Multicast
              socket receive error: java.lang.RuntimeException: I/O error opening JAR
              file from
              file:/C:/weblogic/mycluster/server195/tmp_deployments/ejbjar21587.jar
              java.util.zip.ZipException: error in opening zip fileMon Nov 22 04:15:51
              GMT+05:30 1999:<I> <NT Performance Pack> Allocating: '2' NT reader
              threads
              at java.util.zip.ZipFile.open(Native Method)
              

    I think problem may be with ZIP file, try to open with WinZip, if it opens
              try to extract to some folder and once again zip it, then try with new file.
              Raj
              "vallabh Srinivas" <[email protected]> wrote in message
              news:[email protected]...
              > Hi,
              > am getting this problem.
              > Iam working on NT.
              >
              > thanks
              > vallabh
              >
              > Mon Nov 22 04:15:10 GMT+05:30 1999:<I> <WebLogicServer> WebLogic Server
              > started
              > java.util.zip.ZipException: error in opening zip file
              > at java.util.zip.ZipFile.open(Native Method)
              > at java.util.zip.ZipFile.<init>(ZipFile.java:69)
              > at java.util.zip.ZipFile.<init>(ZipFile.java:84)
              > at
              > weblogic.boot.ServerClassLoader.deploy(ServerClassLoader.java:132)
              > at
              >
              weblogic.cluster.AnnotatedServiceOffer.expandClassPath(AnnotatedServiceOffer
              .java:74)
              >
              > at
              >
              weblogic.cluster.AnnotatedServiceOffer.readObject(AnnotatedServiceOffer.java
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readPublicSerializable(WLOb
              jectInputStreamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readLeftover(WLObjectInputS
              treamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readObjectBody(WLObjectInpu
              tStreamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readObject(WLObjectInputStr
              eamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readObjectWL(WLObjectInputS
              treamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readArrayList(WLObjectInput
              StreamBase.java,
              > Compiled Code)
              > at weblogic.cluster.StateDump.readObject(StateDump.java:59)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readPublicSerializable(WLOb
              jectInputStreamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readLeftover(WLObjectInputS
              treamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readObjectBody(WLObjectInpu
              tStreamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readObject(WLObjectInputStr
              eamBase.java,
              > Compiled Code)
              > at
              >
              weblogic.common.internal.WLObjectInputStreamBase.readObjectWL(WLObjectInputS
              treamBase.java,
              > Compiled Code)
              > at weblogic.cluster.TMSocket.execute(TMSocket.java, Compiled
              > Code)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java,
              > Compiled Code)
              > Mon Nov 22 04:15:20 GMT+05:30 1999:<E> <MulticastSocket> Multicast
              > socket receive error: java.lang.RuntimeException: I/O error opening JAR
              > file from
              > file:/C:/weblogic/mycluster/server195/tmp_deployments/ejbjar21587.jar
              > java.util.zip.ZipException: error in opening zip fileMon Nov 22 04:15:51
              > GMT+05:30 1999:<I> <NT Performance Pack> Allocating: '2' NT reader
              > threads
              >
              > at java.util.zip.ZipFile.open(Native Method)
              >
              

  • Webb Exception - java.util.zip.ZipException: error in opening zip file

              I am tring to run my Servlet with myWAR.war. So I started first installing the CookieCounter example that came with weblogic, I did exactly as the document said but I getting the following exception:
              Thu Jan 04 11:26:45 MST 2001:<E> <HTTP> Error reading Web application '/weblogic/myserver/cookieWar.war'
              java.util.zip.ZipException: error in opening zip file
              at java.util.zip.ZipFile.open(Native Method)
              at java.util.zip.ZipFile.<init>(ZipFile.java:69)
              at weblogic.utils.jar.JarFile.<init>(JarFile.java:57)
              at weblogic.utils.jar.JarFile.<init>(JarFile.java:44)
              at weblogic.t3.srvr.HttpServer.loadWARContext(HttpServer.java:582)
              at weblogic.t3.srvr.HttpServer.initServletContexts(HttpServer.java, Compiled Code)
              at weblogic.t3.srvr.HttpServer.start(HttpServer.java:388)
              at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java, Compiled Code)
              at weblogic.t3.srvr.T3Srvr.main(T3Srvr.java:827)
              at java.lang.reflect.Method.invoke(Native Method)
              at weblogic.Server.startServerDynamically(Server.java:99)
              at weblogic.Server.main(Server.java:65)
              at weblogic.Server.main(Server.java:55)
              at weblogic.NTServiceHelper.run(NTServiceHelper.java:19)
              at java.lang.Thread.run(Thread.java:479)
              Has anybody encountered the problem before I created the jar using jar cvf cookieWar.war cookie- under the command line
              

    I have seen problems like this in the past. When you create your war file, try using "jar
              cv0f" so that the jar file won't be compressed...
              mark bouchard wrote:
              > I am having this same error... the strange thing is i have two different ear files...
              > one of them works, the other doesn't. there are NO differences between them according
              > to Araxis Merge... both will deploy, and both show servlets as being registered,
              > but i can only call the servlets from one...
              >
              > what is BEA's suggested way of creating an ear file? on NT and on UNIX please....
              >
              > use the java.util.zip methods? or use a utility like jar or winzip? Personally,
              > i've found this deployment to be HIGHLY flakey at best.... my same ear files
              > deploy perfectly with iPlanet's app server.
              >
              > Mark Spotswood <[email protected]> wrote:
              > >I think this is basically the same as a file not found error.
              > >The error message says it can't open the file. Its looking
              > >for the file under: /weblogic/myserver/cookieWar.war
              > >Make sure the file is in that directory/readable, etc.
              > >--
              > >mark
              > >
              > >Paul Garduno wrote:
              > >
              > >> Just to let you know, I am getting the same error message. I haven't
              > >worked on it but hope to at some point. I would like to know if the
              > >Weblogic people have seen this error.
              > >>
              > >> Paul Garduno
              > >>
              > >> bionic99 wrote:
              > >>
              > >> > I am tring to run my Servlet with myWAR.war. So I started first installing
              > >the CookieCounter example that came with weblogic, I did exactly as
              > >the document said but I getting the following exception:
              > >> > Thu Jan 04 11:26:45 MST 2001:<E> <HTTP> Error reading Web application
              > >'/weblogic/myserver/cookieWar.war'
              > >> > java.util.zip.ZipException: error in opening zip file
              > >> > at java.util.zip.ZipFile.open(Native Method)
              > >> > at java.util.zip.ZipFile.<init>(ZipFile.java:69)
              > >> > at weblogic.utils.jar.JarFile.<init>(JarFile.java:57)
              > >> > at weblogic.utils.jar.JarFile.<init>(JarFile.java:44)
              > >> > at weblogic.t3.srvr.HttpServer.loadWARContext(HttpServer.java:582)
              > >> > at weblogic.t3.srvr.HttpServer.initServletContexts(HttpServer.java,
              > >Compiled Code)
              > >> > at weblogic.t3.srvr.HttpServer.start(HttpServer.java:388)
              > >> > at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java, Compiled Code)
              > >> > at weblogic.t3.srvr.T3Srvr.main(T3Srvr.java:827)
              > >> > at java.lang.reflect.Method.invoke(Native Method)
              > >> > at weblogic.Server.startServerDynamically(Server.java:99)
              > >> > at weblogic.Server.main(Server.java:65)
              > >> > at weblogic.Server.main(Server.java:55)
              > >> > at weblogic.NTServiceHelper.run(NTServiceHelper.java:19)
              > >> > at java.lang.Thread.run(Thread.java:479)
              > >> >
              > >> > Has anybody encountered the problem before I created the jar using
              > >jar cvf cookieWar.war cookie- under the command line
              > >
              

  • Extracting file from a TAR file with java.util.zip.* classes

    Is there a way to extract files from a .TAR file using the java.util.zip.* classes?
    I tried in some ways but I get the following error:
    java.util.zip.ZipException: error in opening zip file
    at java.util.zip.ZipFile.<init>(ZipFile.java127)
    at java.util.zip.ZipFile.<init>(ZipFile.java92)
    Thank you
    Giuseppe

    download the tar.jar from the above link and use the sample program below
    import com.ice.tar.*;
    import java.util.zip.GZIPInputStream;
    import java.io.*;
    public class untarFiles
         public static void main(String args[]){
              try{
              untar("c:/split/20040826172459.tar.gz",new File("c:/split/"));
              }catch(Exception e){
                   e.printStackTrace();
                   System.out.println(e.getMessage());
         private static void untar(String tarFileName, File dest)throws IOException{
              //assuming the file you pass in is not a dir
              dest.mkdir();     
              //create tar input stream from a .tar.gz file
              TarInputStream tin = new TarInputStream( new GZIPInputStream( new FileInputStream(new File(tarFileName))));
              //get the first entry in the archive
              TarEntry tarEntry = tin.getNextEntry();
              while (tarEntry != null){//create a file with the same name as the tarEntry  
                   File destPath = new File(
                   dest.toString() + File.separatorChar + tarEntry.getName());
                   if(tarEntry.isDirectory()){   
                        destPath.mkdir();
                   }else {          
                        FileOutputStream fout = new FileOutputStream(destPath);
                        tin.copyEntryContents(fout);
                        fout.close();
                   tarEntry = tin.getNextEntry();
              tin.close();
    }

Maybe you are looking for

  • How to restore a database from host A to host B by using RMAN

    Hi there I wanted to restore 1 database from machine A to machine B with the differente files systemes. I did these steps below, but I have a problem when I restore the controlfile from machine A to machine B. 1-copy the controlfile from machine A to

  • HT1665 5W USB Power Adapter serial number

    Does anyone know if the 5W USB Power adapter that comes with the Iphone 5 has a serial number that ties it to the iphone 5 specifically? There has been a misplaced charger mix up I am trying to get to the bottom of. Thanks

  • Re: Keyoard issue

    Hi, I experie ce the same as trgw. I have a HP e vy X2 with dockig statio . I am curre tly missi g the  utto s: b n delete f12 caps lock = + (this was typed with the touch screen keyboard) Updates of windows and driversbhave been carried out. Can you

  • Please help to install oracle and 9iAS

    please check the sequence : oracle 8.1.7 9ias 3.0 winnt 4.0 sp5 installation on one machine : product path 1. winnt : ----> c:\winnt 2. sp5 3. explorer 5.5 4. oracle 8.7 -----> d:\oracle\ora81 5. 9ias -----> d:\oracle\isuites error encounter [1] givi

  • Imovie not playing sound after recording

    I recorded a video using imovie and when I play it back there is no sound. I have adjusted all the volumes etc and nothing seems to be working.