0

My website calls a rest service which is also on the same application. I don't want to change the domain of the rest address if it's hosted on a different domain name and/or port. I want to get the domain, port and application path programmatically.

If we are accessing the website like

http://example.com/article1

then I should get http://example.com

or if our address is like below

http://example.com:8080/ArticleSite/article1

then I want to get http://example.com:8080/ArticleSite

How can this be done?

I did look at the answers at

What's the best way to get the current URL in Spring MVC?

but non are getting the application path.

enter image description here

david
  • 997
  • 3
  • 14
  • 34
  • Possible duplicate of [What's the best way to get the current URL in Spring MVC?](https://stackoverflow.com/questions/1490821/whats-the-best-way-to-get-the-current-url-in-spring-mvc) – Raedwald Sep 27 '19 at 11:23
  • It does not look like any of those answers are getting the application path. – david Sep 27 '19 at 11:59

1 Answers1

0

Hope im not late for the party.

I had issue similar to yours, and i managed to solve first part of your question by using ServletUriComponentsBuilder.

I've been using it like this to get current server URL:

ServletUriComponentsBuilder.fromCurrentContextPath().build().toUriString();

which would return http://localhost:8080 for me

EDIT: everything i wrote will not work, i'm working on a similar issue as OP, and this fix partially worked for me, after some digging i found this question, that has already been answered:

Is possible to get web application full url from Spring service that is invoked by task?

EDIT2: this guy also says it's not possible: How do I find base URL during Spring MVC startup?