How to update a war file safely

Hi,
I have a war file that has some files in it. I would like to update the war file to replace an existing web.xml file and add a new file in a different directory.
I know that i can simply unzip the file and make the changes then zip it back again.
I would like to do this using Ant but i was wondering if it is possible to do the update with only the updated files. I think the way ANT would work is it would check every file on the new directory and replace it if it is newer. The problem i have is i dont have copies of the existing files in the war file. I only have the files i want to replace in the war file. If i try it, will i end up with a new war file with just the new files and everything else deleted or will it just update the new file?

Hi,
Thank you for your response.
A zip file is not really what i was querying about. I am working with a war file (Which is deployable on the application server) which is what i was asking about and probably why i didnt look at the zip task when i looked at the manual.
I am using the war task to create the war file. When i looked at the manual (and googled it) i did find that i could use the update=true property on the war task to update the war file. Maybe i should have rephrased my question in another way. What i wanted to ask was if i use the update=true property will it:
1. Update the war file with the new files and leave everything thing else unchanged.
2. Replace the war file with a new one with just the new files.
3. What happens if the new file i want to include has an older timestamp?
As i mentioned earlier, i also know that i can rename the war file with .zip extension, unzip the war file using winzip, make the necessary changes and zip it back and rename it to a .war file. I dont really want to do this as it doesnt feel like its the right way to do it.
Apologies if my initial post was not clear enough.

Similar Messages

  • Customizing AM Images & Facing Problem in Update & Deploy War files

    Hey Guys!
    This is Yash Bansal from Gurgaon, India. i am new to access manager. i am now customizing it and facing problem in customizing.
    I have customized images which is present in directory path:
    opt/SUNWam/web-src/services/images/
    and updated services.war file which is present in directory path:
    opt/SUNWam/war/
    with command
    jar -uvf services.war /opt/SUNWam/web-src/services/images/login-backimage.jpg
    then deployed configuration from the web server 7.0 admin console.
    after that when i open the url
    http://<hostname>/amserver/console
    then Page Not Found error comes in the browser.
    Just wanted to ask you guys am i doing the steps right. please help if someone know how to update and deploy war file on Sun Web server 7.0.
    Thanks & Regards,
    Yash Bansal

    Hi!
    Deploying the configuration does not (re)deploy the application. Webserver stores a copy of the deployed application and all configurations in the admin instance. When you change anything in the webserver console it is first written there and only applied to the productive instance when you deploy configuration.
    When you add images, jsps or something else to /opt/SUNWam/... and want it redeployed you have to use amconfig command. in /opt/SUNWam/bin there is a file called amsamplesilent. You have to fill the values in this file and then use
    ./amconfig -s amsamplesilent
    I believe for a redeploy you have to set DEPLOY_LEVEL to 21, not sure here, check documentation.
    I personally usually do not redeploy for images and such, I simply copy them directly the deployed location.
    Why http://.../amserver/console does not work anymore, I have no idea. But at least after a redeploy it should be there again.
    hth Chris

  • How to package a .war file for multiple locations...

    Sorry if this is in the wrong section, but I wasn't sure where to place it.
    We have a webapp (.war) that we would like to package to distribute to multiple remote locations. We have to assume that the people installing this webapp have no Java/J2EE experience and will not have the technical know-how to be able to handle packaging the .war file themselves.
    They do, however, need to be able to make configuration changes to the JDBC settings in the web.xml, the logging settings in log4j.xml, and configuration changes in the context.xml.
    Since these files reside inside the .war, what is the best way to package this application so they can make changes to those files and package it to deploy on their application servers?
    Thanks!

    Well, the best way is to move that configuration out of those XML files and manage them directly from you application.
    Then you can use the Java Preferences API to actually maintain the configuration data, and that data is stored outside of your application completely in some JRE dependent way (Registry on Windows, and the users home directory on Unix for Sun's JRE).
    You can also modify your webapp to manage the configuration directly and have it rewrite the XML files itself. The Java Preferences API is better just because the config changes will survive if you happen to update the WAR file with a new version. Of course, you can still leverage the Preference API, get your "defaults" from the supplied XML files in the WAR, and then if your application detects a version change (the one in the Preferences is different from the one in the WAR), the app can update the XML files, and pop up a page telling the user to restart the application to see the new changes.
    Finally, you can also write a Swing app that presents the few options that the user might need, and then it has the smarts to update the WAR file for them (it's simply a ZIP file and Java can read/write those). That way you have a simple wizard they can play with.
    Also, for things like log4j, you can bundle that seperate from the WAR, and let them place it either on the CLASSPATH of their container, or in one of their shared directories (like shared/classes on Tomcat for example).
    I'm fond of the Preferences technique with a Webapp configuration, as you can make your WAR almost plug and play. They plop in the war, app fires up, they hit the URL and there's a config page staring at them.
    But all of these options require work outside of your application.
    You can also perhaps get one of those Installer programs, and right an installer for them. You can explode the WAR in to any directory, and then have the container deploy it from there.

  • How to deploy a war file on Weblogic Server 7.0??

    Hello Everyone
    I am trying to deploy a servlet on Weblogic Server 7.0 as a WAR file. Can anyone of u plz tell me the steps required to do that. I am posting this question on EJb forum and not on servlets coz this is not a servlet problem, rather this is something which is related to J2EE, ie how to deploy a war file on J2EE Server.
    This is how i have done it, but this is not working---
    (1) First i created a directory structure for the web application according to J2EE Specification.
    C:\Work\
    myServletWAR\
    META-INF\
    WEB-INF\
    classes\
    HelloServlet.class
    web.xml
    i.e within work directory, there is a dic called myServletWAR which is my application directory which contains 2 sub directories viz META-INF which contains the mainifest file being generated by the jar utility. the second directory in the myServletWAR application dir is WEB-INF, which contains one file called web.xml for servlet mapping and one directory classes which contains HelloServlet.class
    (2) I used following command for creating war file from myServletWAR director(i.e from my web application's directory).
    jar -cvf TestServletWAR.war .
    This creates the TestServletWAR.war file in myServletWAR dir.
    Here is how my Servlet and web.xml looks like...
    Servlet code
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class HelloServlet extends HttpServlet
    public void doPost ( HttpServletRequest req, HttpServletResponse res )
    throws IOException, ServletException
    doGet( req, res );
    public void doGet ( HttpServletRequest req, HttpServletResponse res )
    throws IOException, ServletException
    res.setContentType( "text/html" ); // Can also use "text/plain" or others.
    PrintWriter out = res.getWriter();
    // Get the requestor's IP address (See JavaDocs to see how to get other info):
    String addr = req.getRemoteAddr();
    // Create output (the response):
    out.println( "<HTML><HEAD><TITLE>HelloServlet in myServletWAR</TITLE></HEAD>" );
    out.println( "<BODY><H1 ALIGN=\"CENTER\">" );
    out.println( "Hello " + addr + ", from HelloServlet in myServletWAR!" );
    out.println( "</H1></BODY></HTML>" );
    out.close();
    ************************Servlet Ends Here **************************
    web.xml
    ---------------------------------------------------------- <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
    <display-name>myServletWAR, a first Web Application</display-name>
    <description>
    This is a simple web application containing a single servlet
    of the "Hello, World" variety.
    </description>
    <servlet>
    <servlet-name>myHello</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>myHello</servlet-name>
    <url-pattern>/myHello</url-pattern>
    </servlet-mapping>
    </web-app>
    ****************************web.xml file ends here********************
    After deploying the TestServletWAR.war file on the weblogic 7.0, i tried to execute the servlet from the browser by the following URL
    http://localhost:7001/myServletWAR/myHello
    I am getting the HTTP 404 Error, which is an indication that weblogic was unable to find the resourse, which it was requested for. Can anybody plz tell me what i m doing worng?? do i need to use weblogic related xml file (i.e weblogic.xml) also along with web.xml. If yes, then what all i need to include that. I m not very sure. A sample weblogic.xml file for this HelloWorld example will help me a lot.
    Looking forward for your help
    Thanx in advance
    Nisha

    hi i have read ur answer regarding deploing a servlet in weblogic 7.0
    i am facing another problem
    when i try to access the servlet inside my classes directory it throwa an error stating this :
    IT DOES NOT FOUND THE CLASSES ON WHICH MY SERVLET DEPENDS.WHAT DOEES ATHIS MEAN
    KINDLY TELL ME
    PUNEET JAIN
    <May 28, 2003 1:46:25 PM IST> <Error> <HTTP> <101250> <[ServletContext(id=6057728,name=WebApp,context-path=/WebApp)]: Se
    rvlet class myclasses.Wservlet for servlet welcome could not be loaded because a class on which it depends was not found
    in the classpath D:\bea\user_projects\PuneetDomain\applications\WebApp;D:\bea\user_projects\PuneetDomain\applications\W
    ebApp\WEB-INF\classes.
    java.lang.NoClassDefFoundError: myclasses/Wservlet (wrong name: Wservlet)>
    <May 28, 2003 1:46:26 PM IST> <Error> <HTTP> <101018> <[ServletContext(id=6057728,name=WebApp,context-path=/WebApp)] Ser
    vlet failed with ServletException
    javax.servlet.ServletException: [ServletContext(id=6057728,name=WebApp,context-path=/WebApp)]: Servlet class myclasses.W
    servlet for servlet welcome could not be loaded because a class on which it depends was not found in the classpath D:\be
    a\user_projects\PuneetDomain\applications\WebApp;D:\bea\user_projects\PuneetDomain\applications\WebApp\WEB-INF\classes.
    java.lang.NoClassDefFoundError: myclasses/Wservlet (wrong name: Wservlet)
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:791)
    at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:517)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:351)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5412)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
    >

  • How to create the War file

    Can you help me , how to create the war file.
    I am using the tomcat 5.0 server, i have book folder in webapp.
    how i can create the war file? what is command?
    help me
    ramya

    using jar command u can create a war file
    jar -cmf myweb.war *.*<files to be included in war file>
    regd,
    ritu

  • How to create a war file of web application

    Hi Techies
    How to create a war file of the web application?
    And plz tell me the utilities used for it.

    hi,
    To compress a 'abc' web application into a "Web Archive" file named abc.war, follow the steps below:
    1> Open a command prompt and cd to the application's dir:
    <TOMCAT_HOME>\webapps\abc
    2> Use the java archive command 'jar' to bundle up your application:
    jar -cvf abc.war *
    3> Move this to any other server and work with it!! :)
    -- Abdel Raoof Olakara
    http://olakara.googlepages.com

  • How to update cgicmd.dat file during runtime?

    I'd like to know how do update cgicmd.dat file during runtime. For example, I run a report one.jsp as
    http://<machine>:<port>/reports/rwservlet?one.jsp&USERID=uid/pwd@db&DESTYPE=cache&mode=bitmap&desformat=htmlcss
    within this report there is a hyperlink to open another report named two.jsp.
    before creating this hyperlink, I'd like to update cgicmd.dat file with passed in userID, pwd, and connection, so two.jsp can use this key for userinfo
    so I can create hyperlink as follows
    srw.set_hyperlink('/reports/rwservlet?report=two.jsp'||
    '&cmdkey=userinfo&DESTYPE=cache&mode=bitmap&desformat=htmlcss');
    Thanks

    To my knowledge the cgicmd.dat is only read when the OC4J starts, so you would have to come up with another solution. Using Single-Sign-On (SSO) is quite a good idea, and it's there for cases like this.
    Regards,
    Martin Malmstrom

  • How to deploy a WAR file in JRun server?

    hi,
    I created one war file, now i want to deploy that file in JRun server. can anyone give me an idea of how to deploy that war file in server...

    By following the deployment documentation for your server. This isn't a general purpose "help me do everything" forum

  • How to update a dbf file with gui_upload???

    hi friends,
    i would like to know how to update a dbf file with gui_upload???
    as i hve already know that it's easy to convert dbf to tab formatted text fle and thn upload it.but i want the direct uploading way.i don't let my user's bsy with converting existing dbf to txt.so pls help me asap!!!!!i will be thankful to you!!!!!

    its very easy you can search other forum!!!

  • How to extract a WAR file..

    Hi,
    How to extract a WAR file.. please help me..
    thanks in advance

    Hi,
    It's simple. If u use tomcat server it put in webapps directory and start server u can see unzip war file. OR
    If u have eclipse editor than u go to project explor and click right than select Export file-->War-->select War file where u put it and click next ---> finish.
    try it

  • How to install a war file as a Web Application Bundle (WAB) in CQ 5.5?

    How to install a war file as a Web Application Bundle (WAB) using CQSE and embedded OSGi Felix container? OSGi R4.2 specification specified Web application bundles which allows deploying war files as WABs insie OSGi containers. How do we do this in Felix container embedded in CQ 5.5?

    i m sorry, i intentionally wanted to post it in EJB forum, mistakenly i posted it in Servlets forum, anyways, if anyone of u know the ans, plz share it with me too.
    Thanx
    Nisha

  • How to uninstall a war file which is deployed as library in console

    Hi All,
    How to uninstall a war file which is deployed as library in console.
    Thanks in advance

    You cant uninstall it........first stop it , then delete it and then activate the session.
    Hope this helps.
    Regards,
    Karan
    Oracle Fusion Middleware Blog

  • How to create a war file of a project

    hi,
    I have a project, in my project i have used file to read & write data
    from file, i have used Ecllipse to build this project. now how i will
    create war file in Ecllipse & ho i will run it? IS there anyone who can
    help me? Please help me..
    With reagards
    Nahar

    hi,
    I m using following version of Ecllipse :lomboz-wtp-emf-gef-jem-eclipse-SDK-3.1.2-win32. With this how i will build war file of project? can u give me solution?
    With regards
    Nahar

  • How to open a .War file

    Hi all
    I have an application running on J2EE server as packed .War file .
    Does anybody know how to open the War file in NWDS ??
    And how to modify some JSP present in that application ???
    Thanks
    KK

    Hi KK
    You will ot be able to open a WAR application deployed in NWDS . Alternatively you can open it using windows ity tools like winzip outside NWDS .
    What you can do is you can create a Web module project and incude all the src including JSP's and change the reqd jsp and redeploy the application again with the changes
    hope this helps,please do not forget to reward suitable points .
    regds
    rajeshkr
    Message was edited by: Rajesh K. R.

  • How to make a WAR File

    Hi dear
    i have a JSp file Now problem is that my server dosent support JSP file
    So i ahve to make a WAR file
    So can u tell me how to make a WAR file.
    i am using TOMCAT 5.5.9 & Orion server

    use an ide and deploy the webapp
    like
    - netbeans
    - Jbuilder
    - eclipse
    - sun one studio
    or google like :
    http://www.google.com.au/search?hl=en&q=creating+war+%2B+jsp&btnG=Search&meta=
    and get as first hit
    http://access1.sun.com/techarticles/simple.WAR.html
    regs
    g00fy

Maybe you are looking for