How do I choose the URL for my Spring Boot webapp?
UrlWeb ApplicationsSpring BootUrl Problem Overview
I am using Spring Boot to create a web app, and I am not sure how to change the URL from localhost:8080
to something like localhost:8080/myWebApp
.
I have a seen a lot of resources online referencing an application.properties
file and adding that to the classpath. But, I'm not sure exactly where to put that.
Questions
-
In my
src/main/resources
? -
How would I assign the URL within the file?
Url Solutions
Solution 1 - Url
You need to set the property server.contextPath
to /myWebApp
.
Check out this part of the documentation
The easiest way to set that property would be in the properties file you are using (most likely application.properties
) but Spring Boot provides a whole lot of different way to set properties. Check out this part of the documentation
EDIT
As has been mentioned by @AbdullahKhan, as of Spring Boot 2.x the property has been deprecated and should be replaced with server.servlet.contextPath
as has been correctly mentioned in this answer.
Solution 2 - Url
As of spring boot 2 the server.contextPath
property is deprecated. Instead you should use server.servlet.contextPath
.
So in your application.properties file add:
server.servlet.contextPath=/myWebApp
For more details see: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#servlet-specific-server-properties
Solution 3 - Url
In your src/main/resources
put an application.properties
or application.yml
and put a server.contextPath
in there.
server.contextPath=/your/context/here
When starting your application the application will be available at http://localhost:8080/your/context/here
.
For a comprehensive list of properties to set see Appendix A. of the Spring Boot reference guide.
Instead of putting it in the application.properties you can also pass it as a system property when starting your application
java -jar yourapp.jar -Dserver.contextPath=/your/path/here
Solution 4 - Url
In Spring Boot 2 the property in e.g. application.properties
is server.servlet.context-path=/myWebApp
to set the context path.
Solution 5 - Url
The server.contextPath or server.context-path works if
in pom.xml
-
packing should be war not jar
-
Add following dependencies
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Tomcat/TC server --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
In eclipse, right click on project --> Run as --> Spring Boot App.
Solution 6 - Url
The issue of changing the context path of a Spring application is handled very well in the post titled Spring Boot Change Context Path
Basically the post discusses multiple ways of realizing this viz.
- Java Config
- Command Line Arguments
- Java System Properties
- OS Environment Variables
- application.properties in Current Directory
- application.properties in the classpath (src/main/resources or the packaged jar file)