Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6807241
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:48:27+00:00 2026-05-26T19:48:27+00:00

This is driving me crazy. Please help. I am new to Spring and I

  • 0

This is driving me crazy. Please help.

I am new to Spring and I developed my first spring mvc web app using sts/eclipse. It runs perfect inside eclipse’s tomcat server.

The application context is /realtyguide and I run it in eclipse at http://localhost:8080/realtyguide/

Here is my web.xml

<?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" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
           http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

  <display-name>Realty Guide</display-name>

      <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
      </context-param>

      <!-- Creates the Spring Container shared by all Servlets and Filters -->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>

      <!-- Handles Spring requests -->
      <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>

</web-app>

Here is my root-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans     
         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

  <!-- Root Context: defines shared resources visible to all other web components -->

</beans>

Here is my Spring application servlet configuration:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
        http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

    <context:annotation-config />

    <!-- Scans within the base package of the application for @Components to configure as beans -->
    <context:component-scan base-package="com.springproject.realtyguide" />

    <!-- Enables the Spring MVC @Controller programming model -->    
    <mvc:annotation-driven />

    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources -->
    <mvc:resources mapping="/resources/**" location="/resources/"/>   

    <!-- Allows for mapping the DispatcherServlet to "/" by forwarding static resource requests to the container's default Servlet -->
    <mvc:default-servlet-handler/>      


    <!-- Bean to provide Internationalization  -->
    <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="WEB-INF/i18n/messages" />
        <property name="defaultEncoding" value="UTF-8" />
    </bean>

    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
        p:location="classpath:META-INF/spring/database.properties" />

    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
        p:driverClassName="${jdbc.driverClassName}"
        p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
        p:password="${jdbc.password}" />

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation">
            <value>classpath:META-INF/hibernate.cfg.xml</value>
        </property>
        <property name="configurationClass">
            <value>org.hibernate.cfg.AnnotationConfiguration</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${jdbc.dialect}</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>

    <!-- Enable the configuration of transactional behavior based on annotations -->
    <tx:annotation-driven />

    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <!-- __________ BEAN ENTRIES FOR TILES 2 -->

    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
        <property name="definitions">
            <list>
                <value>/WEB-INF/layouts/tiles.xml</value>
            </list>
        </property>
    </bean>

    <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" >
        <property name="order" value="0"/> 
        <property name="viewClass"> 
            <value>org.springframework.web.servlet.view.tiles2.TilesView </value>
        </property>
        <property name="requestContextAttribute" value="requestContext"/>
        <property name="viewNames" value="*.tiledef"/>
    </bean>

    <bean id="jstlViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="order" value="1"/> 
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.JstlView</value>
        </property>
        <property name="prefix" value="/WEB-INF/views/"/> 
        <property name="suffix" value=".jsp"/> 
    </bean> 

    <!-- __________ END OF BEAN ENTRIES FOR TILES 2 -->

    <!-- Resolves localized <theme_name>.properties files in the classpath to allow for theme support -->
    <bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
        <property name="basenamePrefix" value="theme-" />
    </bean>

    <bean id="themeResolver" class="org.springframework.web.servlet.theme.CookieThemeResolver">  
        <property name="defaultThemeName" value="standard" />
    </bean>

</beans>

Here is my controler’s handler method for the root

@RequestMapping(value = "/", method=RequestMethod.GET)
public String setupForm(
        @ModelAttribute("searchFormBean") SearchFormBean searchFormBean, 
        Model model) {
    model.addAttribute("searchFormBean", searchFormBean);
    // 'index' is a Tile definition in tiles.xml
    return "index.tiledef";
}

This is my webhosts tomcat/conf/server.xml

I deleted most of the ‘commented out’ stuff to make it shorter.

                <?xml version="1.0" encoding="UTF-8"?>

                <Server port="9200" shutdown="SHUTDOWN">

                  <!-- Comment these entries out to disable JMX MBeans support used for the 
                       administration web application -->
                  <Listener className="org.apache.catalina.core.AprLifecycleListener" />
                  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
                  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
                  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

                  <!-- Global JNDI resources -->
                  <GlobalNamingResources>

                    <!-- Test entry for demonstration purposes -->
                    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

                    <!-- Editable user database that can also be used by
                         UserDatabaseRealm to authenticate users -->
                    <Resource name="UserDatabase" auth="Container"
                              type="org.apache.catalina.UserDatabase"
                       description="User database that can be updated and saved"
                           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                          pathname="conf/tomcat-users.xml" readonly="true" />

                  </GlobalNamingResources>


                  <!-- Define the Tomcat Stand-Alone Service -->
                  <Service name="Catalina">


                    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
                    <Connector port="9201" maxHttpHeaderSize="8192"
                               maxThreads="10" minSpareThreads="5" maxSpareThreads="75"
                               enableLookups="false" redirectPort="8443" acceptCount="100"
                               connectionTimeout="20000" disableUploadTimeout="true" />

                    <!-- Define an AJP 1.3 Connector on port 8009 -->
                    <Connector port="9203" 
                               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />


                    <!-- Define the top level container in our container hierarchy -->
                    <Engine name="Catalina" defaultHost="localhost">


                      <!-- This Realm uses the UserDatabase configured in the global JNDI
                           resources under the key "UserDatabase".  Any edits
                           that are performed against this UserDatabase are immediately
                           available for use by the Realm.  -->
                      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                             resourceName="UserDatabase"/>


                      <!-- Define the default virtual host
                           Note: XML Schema validation will not work with Xerces 2.2.
                       -->
                      <Host name="localhost" appBase="webapps"
                       unpackWARs="true" autoDeploy="true"
                       xmlValidation="false" xmlNamespaceAware="false">

                       </Host>

                    </Engine>

                  </Service>

                </Server>

My Goal

Bring up the index page of the site at example.com, without the extra /.../ after the domain name.

What I Did

Deployed as Root of Virtual Host on a Shared Webhost:

I read on stackoverflow that I need to deploy as root so…

I packaged it in STS/Eclipse by: right click on project “realtyguide” > Run as > Maven package

Webhost server is a private Tomcat 5.5. I deployed the war file (unzipped it) on my webhost as default application of virtual host (with Context path = "" in server.xml) so I can access the website as example.com and not example.com/realtyguide.

Success. Or so I thought. I am able to bring up the index page at http://example.com/

Problem

Access to the other web pages referenced from the index page return a 404 error:

The requested URL /realtyguide/page-name was not found on this server

Even though the browser address bar show the context path with a complete URL of http://www.example.com/realtyguide/page-name

I think the app is bypassing the spring dispatcher servlet, hence not recognizing the context path, ‘realtyguide’, in the request URL – resulting in a 404 error.

I am so lost on how to deal with this.

Questions:

  1. What can I do to bring up the index page of the website at example.com instead of example.com/realtyguide/ without breaking the app? I’ve tried a index.jsp file (in WEB-INF) forwarding to the index of the context path but it doesn’t solve the problem. Maybe I was doing it wrong.

  2. Is there some forwarding mechanism that I can use so that a site visitor enters example.com and is immediately forwarded to the index page at example.com/realtyguide/ so that all URLs shall be handled by the app?

Am I thinking about the problem the right way? Any solutions you’ve used before?

I’d greatly appreciate your help. Thanks for your time.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T19:48:28+00:00Added an answer on May 26, 2026 at 7:48 pm

    You need to make your web application the default web application for Tomcat. Instructions are here:

    http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application.3F

    Once that’s done, it’s easiest to use the index.jsp to forward to your Spring application’s index.

    An index.jsp file in the WAR root containing the following should do it:

    <jsp:forward page="/realtyguide/" />
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This is driving me crazy. Hopefully my question makes sense... I'm using MVC 2
Please help - this is driving me crazy... I have a number of lines
Please apologize for the basicness of my question, but this is driving me crazy
this has been driving me crazy, someone please show me where i screwed it
This is driving me crazy. Please someone tell me I'm not crazy: var constraints
This is driving me crazy and has resulted in lost work (not much, at
This is driving me crazy, so... When resizing image to small thumbnail, resulting image
This is driving me crazy. I have a very simple user control: public int?
This is driving me crazy! I'm successfully saving a photo to my applications document
This is driving me crazy and I can't find the answer anywhere. I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.