Programmatically Modifying a File in Deployed war

I am new to OAS, so excuse me if this is a stupid question.
We are deploying a custom application that provides access to 3rd party software. To that end, we include the 3rd party JAR file in our WAR file.
This 3rd party software requires a certain file be available in the CLASSPATH. Hence, we have this file in the WEB-INF\classes directory. This file contains configuration parameters that the 3rd party software uses.
However, we also have a requirement that our end users need to be able to modify these parameters to cause the 3rd party software to operate differently. So, what I'd like to do is build a UI for our users that allows them to modify the parameters that are stored in this file and then updates the file which is inside the war (in WEB-INF\classes).
Is it possible to do this in OAS? Does OAS provide any API that can be called from a class inside the war file to update another file in that same war file?
It is not permissible for us to store this configuration file anywhere else, like on a file server. Our end client forbids this. So that is why I am seeking to update the file inside the war.
Thanks.

Let us call the file in your problem "the configuration file". If I understand correctly, the crux of the problem is to get hold of the configuration file programmatically after the deployment of the containing war file. You can then provide some mechanism for your client to manipulate it.
An HttpServlet can be employed to do that. Suppose the web application has an index.html at the top level of the war file. Suppose that after the war has been deployed, that index.html can be accessed by, as usual, http://host:port/myServeletContext/index.html. Then you can get the location of the configuration file by
  String fileLocation = "WEB-INF" + File.separator + "classes" + File.separator + "configurationFile";
  File  indexFile = new File(getServletContext().getRealPath("/index.html"));
  File webRoot = indexFile.getParentFile();
  File configFile = new File(webRoot, fileLocation);This is a common trick to get the path to a file in WEB-INF directory. Hope this helps.

Similar Messages

  • Deploying War File in OC4J

    Hi,
    I am a new bee to OC4J. I tried to deploy a war file OC4J server, which comes along with Jdeveloper release 10.1.3.
    Steps which I followed.
    1. Copied the war file to <10g-Jdev>\j2ee\home\applications\
    2. added <web-app application="testapp" name="testapp" root="/testapp" access-log="false"/> in <10g-Jdev>\j2ee\home\config\default-web-site.xml
    3. added <application name="testapp" path="../../home/applications/tesapp.war" parent="system" start="true" /> in <10g-Jdev>\j2ee\home\config\server.xml
    4. started the 0c4j using <10g-Jdev>\jdk\start_oc4j.bat
    I got following log
    Starting OC4J with command: "..\..\jdk\bin\java.exe" -jar oc4j.jar
    06/02/15 14:53:13 [SEVERE]: Error instantiating application at file:/X:/10g/j2ee/home/applications/webapp1.war: Unable to get ApplicationConfig for testapp : Unable to find/read file META-INF/application.xml in X:\10g\j2ee\home\applications\webapp1.war archive (META-INF/application.xml)
    2006-02-15 14:53:32.609 NOTIFICATION JMS Router is initiating ...
    2006-02-15 14:53:35.906 ERROR J2EE HTTP0004 Internal error raised tyring to instantiate web-application: testapp defined in web site OC4J 10g (10.1.3) Default Web Site. Application: testapp does not exist. Error creating Web application: testapp
    06/02/15 14:53:35 Oracle Containers for J2EE 10g (10.1.3.0.0) initialized
    06/02/15 14:58:03 Shutting down...
    Can anyone explain me wat should i do for deploying successfully.
    Thanks,
    Siva

    Hello,
    As a word of caution I would strongly recommend that you use proper deploy techniques when deploying WAR/EARs to OC4J (or any J2EE container). You should not be copying files into the applications directory and modifying xml files (even though it might be neccessary at times).
    Please try to follow good J2EE techiniques and write ANT scripts or batch files to do your deployment, its easy to do and reusable. Please also review the deployment guide to familiarise yourself with OC4J deployment tools.
    Thanks,
    Deepak

  • Unable to Deploy WAR file  (Unknown assembly root-tag attribute: version)

    Hello,
    I created a simple web application with eclipse + tomcat plugin + struts2 (JPA Spring Hibernate ) and created the WAR file using the tomcat plugin compiler. When I deploy the war file into Tomcat 6 the file is deployed properly and i can view the website properly. But when I try to deploy the the WAR file from Oracle 9i Application Server I get the following error.
    Failed to deploy web application "mytest". Nested exception Root Cause: Error loading web-app 'mytest' at C:\ora9ias\j2ee\MySystem\applications\mytest\mytest: Unknown assembly root-tag attribute: version; nested exception is: java.lang.InstantiationException: Error loading web-app 'SFPD' at C:\ora9ias\j2ee\MySystem\applications\mytest\mytest: Unknown assembly root-tag attribute: version.
    My Current web.xml is this.
    <?xml version="1.0" ?>
    <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>My Test Project System</display-name>
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>
    </web-app>
    thanks in advance,

    Thanks for the reply sasesha,
    I've changed my web.xml to
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
         "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>     
         <display-name>My Test Project System</display-name>
         <filter>
              <filter-name>struts2</filter-name>
              <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
         </filter>
         <filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern>/*</url-pattern>
         </filter-mapping>
         <listener>
              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
         </listener>
         <welcome-file-list>
              <welcome-file>index.html</welcome-file>
         </welcome-file-list>
    </web-app>
    During the initial upload the previous error doesn't show anymore, however, I'm getting this new error and currently I'm a bit at a loss since i included the spring.jar library file in my war file. I tried the new war file in Tomcat and the war file deploys fine. Am I missing a configuration or setup ?
    Failed to deploy web application "mytest". Nested exception Root Cause: Class not found: org.springframework.beans.factory.BeanDefinitionStoreException; nested exception is: java.lang.ClassNotFoundException: org.springframework.beans.factory.BeanDefinitionStoreException. Class not found: org.springframework.beans.factory.BeanDefinitionStoreException; nested exception is: java.lang.ClassNotFoundException: org.springframework.beans.factory.BeanDefinitionStoreException
    Thanks again,
    sethsera

  • Error while deploying war file using JRUN JMC

    Hi,
    I am getting "Deployment service failed to deploy war file" Error
    while trying to deploy a war file using JRUN Mgmt console.
    If anyone has any idea about it, please help.
    Thanks
    Jit

    Check the logs. There might be a detailed exception in it. My guess is that it might have something to do with the deployment descriptors.
    If you could post the deployment descriptors and the exception stack trace, it would be easier to figure out.

  • Is there a way to keep Deployment Utility from modifying sequence file paths?

    While the Deployment Utility appears to be a great tool, it does some things that I'd rather it didn't. One is that it modifies all paths in sequence that it is including from Absolute to Relative. While this is a nice feature for many reasons, it is a show-stopper for our uses. This is because as part of our distribution process, we also use a checksum routine to verify that the sequence files being run by the operators on the Test Stations we deploy to are running the correct (unmodified) version of the test software. By using Absolute paths, we can detect and prevent accidental editing/changing of the sequences or paths that we have deployed, but if we have to use relative paths that is something that we could work with also.
    So my questions are: 1. Can this path update 'feature' be disabled? and 2. If not, then will pre-setting all paths in a sequence cause the deployment utility to only copy the file and not update it (thus changing it's checksum)?
    I'm going to test the latter when I have time, and if there are any other suggestions that might be useful, I'm love to hear them.
    Thanks,
    -Jack 

    Rick,
    In my experimentation to see if using relative paths, I was able to prove that a sequence that uses them will not be updated - with one caveat; if the path that is referenced by the sequence is not itself in a sub-directory, i.e.; it's in a different branch of the relative directory structure with respect to the Target (such as the TestStand directory), then the sequence file is always updated and re-saved. An example is that we have a sequence in the Tools directory that calls a DLL in the FrontEnd directory of the Components\User path. This re-saving causes a checksum change and screws up our verification mechanism. 
    It is unfortunate that I cannot prevent the deployment utility from modifying sequence files - Since we control the entire Test environment, including the location that software gets installed to - Test Station custodians can't go installing the software in a different location, or worse, multiple locations, so we don't have the issue to worry about.
    Because of this 'better' method, we now have to re-evaluate how to control the installed version of the software, or use a different installer, such as CVI, which while it has been working for us, has it 's own issues that we're trying to get away from. I'm glad that I am finding out about this now before I've locked down the sequences so that I can probably move the features in the Tools to the Frontend Callback sequence. 
    It's almost always the case thought that one persons forced enhancement is another's 'feature' or worse 'bug'.
    Thanks for confirming the behavior on the Deployment utility for me.
    -Jack

  • Class file missing from war file deployment

    I have a web application that is being deployed to a war file. I have deployed several times successfully. Then with the latest changes, there is a class file that does not get included into the war file. It does get compiled and does exist in the project directory.
    The class file is in a seperate project from the project where the war file deployment profile is; however both projects are in the same workspace.
    There are several other classes in the project that contains the missing class file that does get included in the war file. I don't see anywhere in the profile where these files are selected individually.
    I'm at a loss as to how to fix this problem other than add the file after deployment.
    Appreciate any help or ideas...
    Keith...

    Hi Keith,
    You may want to follow this thread....
    class object missing from ear file
    Brigette

  • Deploy .war file in Ebs 11i-11.5.10.2

    Hi,
    My boss is asking me to deploy the .war file in one of the EBS 11i - 11.5.10.2 instance. I am wondering to know how can we deploy .war in EBS 11i Instance?
    If we can deploy the .war in EBS 11i Instance please post the high level steps and if not kinldy suggest the softwares how to deploy the .war?
    As my understanding is We would required to install OC4J in new machine which will install the default DB and we can deploy the .war file in that OC4J server.
    Thanks,
    Syed

    Hi,
    I believe your understanding is correct. Please see (Note: 557221.1 - Oracle WebCenter 10g Application Creation and Deployment Guide for Oracle E-Business Suite Release 12) but it is for R12 for the steps of deploying war files.
    Regards,
    Hussein

  • How to deploy war files

    Hi, I am absolutely new to solaris. I just find out how to run apache server, (did it by command: svcadm enable apache2) Now I have a war file that I want to use but I have no idea how to. I found the DocumentRoot "/var/apache2/htdocs" , so I copy the war file in that directory... now I have no idea what to do.. I read tomcat should extract it somehow automatically, but nothing happens.

    What you are talking about is Apache httpd server.
    And what you need to deploy war (WebARchive) file is Apache Tomcat Servlet Container. You see, Apache httpd and Apache Tomcat are two different things.
    So, download Tomcat, put your war file into webapps catalog, run the Tomcat, and that is basically it. Application in the war file should be accessible in its context through the browser.

  • How to deploy WAR file in tomcat.?

    Can anybody please provide step by step information of deploying war file to Jakarta tomcat without IDE.
    I am working on Windows XP with jakarta tomcat 4.1.30.
    Thanks in advance.
    Regards,
    Aman Aggarwal

    See if tomcat runs as a service in your operating system. If you can locate it, you can set the start type to automatic. A very crud way is to run the tomcat startup file from autoexe.bat.
    I don't know how to do this in Linux. Here is a link for tomcat 6. Maybe it is the same in tomcat 4
    [http://tomcat.apache.org/tomcat-6.0-doc/setup.html]
    Edited by: nirvan on Dec 29, 2008 9:15 AM

  • How to Deploy war file in oracle apps 12

    Hi,
    Please advice the steps to deploy war file on the Oracle apps release 12.
    Thanks..

    Hi,
    Have a look at the following note, it may be helpful.
    Note: 557221.1 - Oracle WebCenter 10g Application Creation and Deployment Guide for Oracle E-Business Suite Release 12
    https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=557221.1
    Regards,
    Hussein

  • How to deploy war file in wesphere5.1

    hi
    i am new to websphere 5.1. i am trying to deploy war file in websphere admin it giving an error that ear file is corrupt. same file is working with weblogicc..
    so please tell me step by step .
    if is there any other site where can i get the step step process..
    thanks
    anagh

    first step: read documentation
    second step: apply gathered knowledge
    a few pointers, if i am not mistaken your problem is that a weblogic ear uses weblogic specific application.xml, you might wanna focus on that

  • How to Deploy WAR file in solaris

    I want to deploy WAR file in Solaris.

    Install Java on Solaris.
    Install Tomcat (or whatever app server you want to on Solaris)
    Deploy the WAR file in the standard place for that app server.
    ie Tomcat would be [TOMCAT]/webapps directory.

  • Deploying war OR ear file in 10.1.3 standalone OC4J

    I've read the several threads on how to deploy a war file and/or ear file for OC4J but haven't seen anyone having the same issue I'm having.
    I've tried deploying manually, from the command line using admin.jar, as well as the enterprise manager. It appears that when OC4J is looking for a jar file containing EJB's. But my app has none and there is no jar file that it finds.
    Here is what the console reports when I try to deploy using admin.jar ->
    http://www.gordongridley.us/2007/02/oc4j-console-when-trying-to-deploy.html
    OK - so I try to deploy using the Enterprise Manager instead to see if the UI has some options that I can change for not forcing an EJB jar file lookup. Here is a video of what I did ->
    http://www.gordongridley.us/2007/02/attempting-to-deploy-war-using-oc4j.html
    Do I really need to have a jar file with EJB's to deploy a WAR/EAR file?

    Hi Gordon,
    The source of your ills is this entry in the application.xml descriptor:
    <module>
    <ejb>TomaxCMAdmin.jar</ejb>
    </module>
    Remove that, and you should be good to go (assuming you aren't referencing any other non-existent JARs).
    Thanks
    Dan Hynes

  • Problem redeploying war files with deployment tool

    I'm going thru the j2ee tutorial(downloaded Dec 03). I can't successfully redeploy war files. After making changes to a java file and then rebuilding using asant, using the deploytool I save changes and then redeploy. I always get the old version unless I completely remove the old web module and create a new one. I've seen this problem over and over in the forum but nobody has addressed it properly. Please help.

    To be more specific, I'm working on the bookstore example in the J2ee tutorial. If I just add a single web module(banner servlet) to the existing standalone war module bookstore1, The tools->update module tools->deploy works fine. If I add the rest of the modules(bookDetailsServlet,bookStoreServlet,etc). After making changes and rebuilding the .java files if I go to tools->update module the window displays nothing under the heading "the following entries have changes".
    Under the heading "the following entries were not found on disk" is a list of all the files under the war module bookstore1.war. I'm don't understand why it is not recognizing the changes. Any help would be appreciated.

  • 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

Maybe you are looking for