Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Set Context root in Spring Mvc Project

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" />

like image 865
villa Avatar asked Nov 18 '16 06:11

villa


People also ask

What is context root in Spring MVC?

Simply put, the context path is a name with which a web application is accessed. It is the root of the application. By default, Spring Boot serves the content on the root context path (“/”).

How do you set root context?

A context root identifies a web application in a Java EE server. A context root must start with a forward slash (/) and end with a string. In a packaged web module for deployment on the GlassFish Server, the context root is stored in sun-web.

How do I change the context root of an application?

To change the context root of a web application that is already available in the Eclipse workspace, simply right-click on the web project and call the “Properties” action from the context menu.


1 Answers

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

like image 91
developer Avatar answered Sep 27 '22 00:09

developer