[英]Tomcat using war name as base url for Spring boot
我有一個名為“springapp”的spring啟動應用程序,其基本URI為:
http://localhost:8080/
當我作為一個獨立的應用程序運行它時它工作正常。 但是當我在Eclipse中運行它像“在服務器上運行 - >運行”時,它會將war名稱附加為springapp-1.0-snapshot,並且基本URL將變為:
http://localhost:8080/springapp-1.0-snapshot
有什么辦法可以解決這個問題。 我想要URI
http://localhost:8080/springapp
我在我的application.properties中嘗試了以下所有配置,但它們都沒有工作:
spring.webservices.path=/springapp
server.tomcat.basedir=/springapp
spring.jersey.application-path=/springapp
server.contextPath=/springapp
server.servlet-path=/springapp
這是我的入門級:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@ImportResource("classpath:spring-config.xml")
public class SpringAppStarter extends SpringBootServletInitializer {
private static final Logger GENERAL_LOG = LogManager.getLogger(SpringAppStarter .class);
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(SpringAppStarter.class);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
GENERAL_LOG.info("Starting Spring Service App");
SpringApplication.run(SpringAppStarter .class, args);
}
}
和我的請求映射類:
@RestController
@RequestMapping("/Customers")
public class SpringAppResource {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
我還在META-INF文件夾中添加了上下文配置:
<Context>
<context docBase="springapp" path="/springapp" reloadable="true"/>
</Context>
我正在使用Maven來構建項目。 而且我不想更改服務名稱。 我需要在應用程序本身的某個地方提供上下文路徑。 不能依賴服務器。 我應該提供所有配置,因此在部署之后不需要進行任何配置。
你應該能夠像這樣重命名戰爭
<build>
<finalName>springapp</finalName>
. . .
</build>
您還可以將Tomcat服務器上的應用程序名稱更改為:
現在您的應用程序將位於URI: http://localhost:8080/springapp
如果您正在使用eclipse,那么您可以通過轉到yourproject->properties->Web Project settings
來更改根上下文。 然后在此更改上下文根並重新啟動服務器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.