• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

tomcat 6 - how to define context root name diff than WAR file name

 
Greenhorn
Posts: 4
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
HI guys i am using TOMCAT 6 to deploy a struts based application WAR file.
my problem is my WAR file name is aaa.0.0.1d.WAR in dev aaa.0.0.1s.WAR in stage and aaa.0.0.1p in prod environment.
for dev WAR i need to set the context root as reporting so that my request URL would be
http://localhost:8090/reporting/getReport.do
i tried creating a XML file as aaa.0.0.1d.xml and deployed in the CATALINA_HOME/conf/Catalina/localhost/ directory
and the content of the file is

<?xml version="1.0" encoding="UTF-8"?>
<!-- Context fragment for deploying the build-demo application

-->
<Context path="/reporting" docBase="..\webapps\aaa.0.0.1d.war" />

but as my WAR file name is aaa.0.0.1d.WAR i cant use above mentioned request URL.
if i use the request URL as
http://localhost:8090/aaa.0.0.1d/getReport.do then it works fine.
so in short i need to define a context root which is diffrent than my application WAR name.
can anybody tell me how can i do this?
 
author
Posts: 4107
28
Google Web Toolkit Eclipse IDE Flex
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First off you should use relative path names, then you wouldn't even need to worry about what the base URL is. Second, it sounds like your configuration is wrong, the WAR name does not need to be part of the URL. Are you putting the information you want in the server config or the WEB-INF/web.xml file?
 
sush dod
Greenhorn
Posts: 4
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
no i am not writing nything in the server.xml and even in web.xml
my web.xml looks as below

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>


what do you mean by my configuration is wrong.
i can access my application using the URL
http://loalhost:8090/aaa.0.0.1d/....
can you tell me how do you set the relative path in the application specific xml file?
 
Scott Selikoff
author
Posts: 4107
28
Google Web Toolkit Eclipse IDE Flex
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Originally posted by sush dod:
no i am not writing nything in the server.xml and even in web.xml



Stop right there. That's your problem. Context path is controlled by one of these files.

And in the words of a friend of mine "Not writing nything"? Ok first nothing is misspelled but even still "no i am not writing nothing" ... such bad grammar.
[ August 19, 2008: Message edited by: Scott Selikoff ]
 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Originally posted by Scott Selikoff:

And in the words of a friend of mine "Not writing nything"? Ok first nothing is misspelled but even still "no i am not writing nothing" ... such bad grammar.
[ August 19, 2008: Message edited by: Scott Selikoff ]



The poster meant to write "anything". As a typo, "any -> ny" makes much more sense than "not -> nyt"
 
Scott Selikoff
author
Posts: 4107
28
Google Web Toolkit Eclipse IDE Flex
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Karel, if you're going to nitpick at least provide useful information to the original poster when you do as I did.
 
Sheriff
Posts: 67268
170
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Actually, the current accepted way to add a new context is through a context file in conf/Catalina rather than in server.xml. See the Tomcat docs.
 
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

sush dod wrote:HI guys i am using TOMCAT 6 to deploy a struts based application WAR file.
my problem is my WAR file name is aaa.0.0.1d.WAR in dev aaa.0.0.1s.WAR in stage and aaa.0.0.1p in prod environment.
for dev WAR i need to set the context root as reporting so that my request URL would be
http://localhost:8090/reporting/getReport.do
i tried creating a XML file as aaa.0.0.1d.xml and deployed in the CATALINA_HOME/conf/Catalina/localhost/ directory
and the content of the file is

<?xml version="1.0" encoding="UTF-8"?>
<!-- Context fragment for deploying the build-demo application

-->
<Context path="/reporting" docBase="..\webapps\aaa.0.0.1d.war" />

but as my WAR file name is aaa.0.0.1d.WAR i cant use above mentioned request URL.
if i use the request URL as
http://localhost:8090/aaa.0.0.1d/getReport.do then it works fine.
so in short i need to define a context root which is diffrent than my application WAR name.
can anybody tell me how can i do this?



If i not understood you wrong then you want to set your root web application to your default web application. meaning when you open http://localhost:8090/ then your application will be loaded. For doing this you need to just add folowing tag in server.xml tag within host tag.



refer : how to configure root application Tomcat
 
Ranch Hand
Posts: 120
IntelliJ IDE Hibernate Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

sush dod wrote:
so in short i need to define a context root which is diffrent than my application WAR name.
can anybody tell me how can i do this?



Did you try to edit server.xml ? Put something like this at the very end


I tried it with supplied docs folder. It worked fine for me.


http://localhost:8221/ZZZ/ - this is my baby
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Didn't adding <Context docBase="docs" path="/ZZZ" />
to server.xml deploy your application twice ? I am facing the same issue.I need the context path to be different to my WAR name.
But editing server.xml is not recommended by Tomcat and even if you do it the war is deployed twice.
 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hey, correct me if m wrong.
As per my understanding do you want to call your url as http://localhost:8101/myroot/start

where start is my servlet whose mapping in my web.xml.

Or do you need to call it like http://localhost:8101/start, which is nothing but calling the servlet without context root name.

Let me know if you want to call servlet without context root.?
 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Vivek, I am using WAS Community Edition v2.1 server. I would like to call a jsp without the context root. Can you help me out with this?
 
vivek nimje
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Hemantha,

Frankly speaking , i never tried with WAS server.
I done it on JRUN4,
Steps are :Go to Jrun4>server>Your App> Default ear>default war>web-inf>default web.xml

Inside this web.xml, make the entry of your servlet with its servlet class. in case of jsp you can make entry of your jsp.

and from here you can call your srvlet without context root.

try it!!!

Let me know if you require more details. I will try the same with WAS server once i will be free on weekends!!!
 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you're under linux, an easy solution to keep war file name and choose the context-path consists in using links.

You just have to deploy your war outside of the Host's appBase and to create a link inside the appBase directory.

Ex. :


Ektor
 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!