Is it possible to keep the webcontent separate from the WAR when deploying to JBOSS. The motivation for this is to avoid WAR deployment when there are JSP changes.
For example, we need to keep the jsps and other webcontent (css, images etc) in a folder like /home/jboss/webcontent/ and the server/application when referring to any JSPs/images etc needs pick and translate the jsp files from this location.
Thanks so much in advance.
Regards,
Vinay
Related
I'm using Eclipse with WebLogic extensions.
I'm developing my J2EE application as Exploded. Each time I modify a JSP file content it is copied automatically inside the exploded deployment folder.
Unfortunately this scenario works only for JSP files, any other project file, like CSS and JS, must be copied by hand.
Is it possible to tell Eclipse to auto deploy other file types too?
Thanks!
I wanted to know one thing. When deploying a GWT application on
the server, lets say an application in which there are client files
Greeting.java(entrypoint), service.java,serviceAsync.java and server
file serviceImpl.java(), only the client files will converted to
javascript. After compilation, I take the war file and place it on the
server, but where to place the server file that is serviceImpl.java???
The war file will also contain a /WEB-INF folder with the web.xml your libs and the other java classes needed for the server side.
So you only need to copy your war file in the proper webapps folder from your server.
I am building a web service and am packaging it into a war file for deployment. Right now all of my config files (.properties and .xml) are being packaged into my .war file. This isn't going to work as some of these files will need to be modified for each individual installation. I know that some servlet containers will leave the .war files intact which would mean the config files would never be easily modified. My question is this: what is the best practice for deploying a .war file with these external config files? I'm thinking that the config files will need to be shipped separate from the .war file and placed into a directory that is in the classpath. Is there a default directory setup like this in Tomcat that these files can just be dropped into and my web service will be able to find without much trouble?
Maybe I shouldn't be using a war file for this setup? Maybe I should just be providing a zip file (with the same contents as the war file) and the deployment will simply be to extract the zip into the webapps directory?
I do not know any default directory in Tomcat to store configuration, my
attempts to solve the same issue have been :
1 - Move configuration to the DB and provide scripts or webpages to modify values.
2 - Have a script to deploy the war. The script would merge configuration from a user directory into web.xml or other deployed config files.
3 - Have webapps look first in a user directory for configuration and
if not found then look for configuration files deployed by the war.
Least favorite is 3 - it require all webapps to check two places for configuration and
you end up with two different xml files on the server with different values and it is not always clear which one is used.
Next favorite is 2 - the webapps can be written without knowledge of multiple config files, but you run into issue when someone does a deploy from Tomcat manager instead of using your script.
Favorite is 1. This just works in most cases. Problem is when you don't have a DB or
want to configure how you connect to the DB.
If having the file visible from all webapps is not an issue, you could put it $CATALINA_HOME/lib.
One solution is to modify property file after deployment of war file is to use ServletContext.getRealpath() method to get the real path means path of file in the server where it is deployed and then modify that file it will modify file in container only not the original file. So you need to backup it if it is important modification for you. So by this you do not need to redeploy war file as it is already modifying file from deployed container.
This solution can edit a file that is in webpages folder also from the java class.
If you want more description or how to do it then let me know i have did it.
I have a proprietary application and its war file is available to us. I need to basically add a jsp page to the current application.
I was thinking i will write the independent jsp, java files build a war and add it to the proprietary war file.
Or
i will write the jsp, java files and add it to the same war.
Can i make a new war and make the proprietory to interact..
Which option is better.
I think you could unpack the war, then add your jsp. After that, re-build the war file.
Yes. Just unpack the war and add your custom content. Your libraries go in WEB-INF/lib and your classes in WEB-INF/classes. You can also add servlets, filters, and listeners to web.xml as needed.
Each time I shut down Tomcat server, it deletes my exploded webapp. What do I have to do to stop that? It's really inconvenient constantly copying it again under the webapps dir.
This can happen with Tomcat 5 if you have a WAR under your webapps directory. Tomcat has 3 modes of deployment,
Context fragment. A XML file under conf/Catalina/[host]
WAR. A file ended with war in appBase (normally webapps)
Directory. A directory (normally exploded WAR) in appBase
Looks like you are mixing 2 & 3 and Tomcat is confused. If you put war under webapps, Tomcat will explode it automatically. If you want explode it yourself, don't put WAR under webapps and Tomcat should leave your directory alone.
You can also run WAR without exploding it by adding this to your Context,
unpackWAR="false"
I've never seen it do that.
One option would be to place the exploded webapp in a directory outside of the Tomcat install, then add a deployment descriptor referencing it in the conf/Catalina/localhost directory. I typically work that way, and Tomcat has never deleted any files on me!