How to Set Context root in Spring Mvc Project

19,916

My projectname is: DemoApplication, first this context root is deployed the path is, http://localhost:8080/DemoApplication and second time it is, http://localhost:8080/Controller ?

You NEED TO fix the root context for your web application (DemoApplication) to fix the URL, which you can achieve with one of the below options:

(1) Set the root context as DemoApplication in Tomcat as explained here

(2) If you are using Maven, you can fix your war name by adding the below tag into the pom.xml:

<build>
    <finalName>DemoApplication</finalName>
</build>

Once you are done with either of the above options, you should be able to access your application controller always with below url :

http://localhost:8080/DemoApplication/Controller

Share:
19,916

Related videos on Youtube

villa
Author by

villa

Updated on September 14, 2022

Comments

  • villa
    villa over 1 year

    I am Using Spring MVC project in Tomcat Server.Each time I run the application the server context root is changed. How to set fixed context root?

    My projectname is: DemoApplication, first this context root is deployed the path is, http://localhost:8080/DemoApplication

    second time it is, http://localhost:8080/Controller Web.xml:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
    </context-param>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <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>
    

    servlet-context.xml:

    <annotation-driven />
    <resources mapping="/resources/**" location="/resources/" />
    <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>
    <beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <beans:property name="url"
            value="jdbc:mysql://localhost:3306/mydp" />
        <beans:property name="username" value="root" />
        <beans:property name="password" value="root" />
    </beans:bean>
    <beans:bean id="hibernate4AnnotatedSessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <beans:property name="dataSource" ref="dataSource" />
        <beans:property name="annotatedClasses">
            <beans:list>
                 <beans:value>com.Aquatech.Model.Area</beans:value>
            </beans:list>
        </beans:property>
        <beans:property name="hibernateProperties">
            <beans:props>
                <beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
                </beans:prop>
                <beans:prop key="hibernate.show_sql">false</beans:prop>
            </beans:props>
        </beans:property>
    </beans:bean> 
    <beans:bean id="GenericDao" class="com.Aquatech.Dao.Impl.GenericDaoImpl">
     <beans:property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory"></beans:property>
    </beans:bean>
    <beans:bean id="GenericserviceDao" class="com.Aquatech.ServiceDao.Impl.GenericServiceDaoImpl">
     <beans:property name="genericDao" ref="GenericDao"></beans:property>
    </beans:bean>
    <interceptors>
        <beans:bean id="webContentInterceptor"      class="org.springframework.web.servlet.mvc.WebContentInterceptor">
            <beans:property name="cacheSeconds" value="0" />
            <beans:property name="useExpiresHeader" value="true" />
            <beans:property name="useCacheControlHeader" value="true" />
            <beans:property name="useCacheControlNoStore" value="true" />
        </beans:bean>
    </interceptors>
    <context:component-scan base-package="com.Aquatech.Controller" />
    

    • ScanQR
      ScanQR over 7 years
      please provide your web.xml, application context xml from Spring MVC
    • developer
      developer over 7 years
    • ScanQR
      ScanQR over 7 years
      @vila your web.xml seems to fine. Also for tomcat the default context root is war name.