我正在做一個簡單的彈簧啓動應用程序,但訪問這個應用程序的路線有問題。 我的應用程序非常簡單。這個POM:通過url訪問彈簧啓動應用程序
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<finalName>demospringboot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
<packaging>jar</packaging>
這是主類
@SpringBootApplication
@ComponentScan(basePackages = "main")
@EnableAutoConfiguration
public class ApplicationMain {
public static void main(String[] args) {
SpringApplication.run(ApplicationMain.class, args);
}
}
而這個去Controller類
@RestController
public class ControllerMain {
@RequestMapping("/springboot/hello")
public @ResponseBody String home() {
return "Hello World";
}
}
好吧,當我執行在localhost上的應用程序都運行正確,我可以將http://localhost:8080/springboot/hello放入瀏覽器中,並顯示結果。 當我在生產服務器上生成jar時,我的問題就開始了。該服務器是一個典型的VPS(虛擬專用服務器),帶有Plesk,它具有Apache服務器並集成了Tomcat。 首先我停止服務器的tomcat服務,因爲我的spring啓動應用程序嵌入了Tomcat,這會在兩個Tomcat服務器之間產生衝突。 後,我去上傳jar文件到服務器,並執行它:
java -jar demospringboot.jar
我看到痕跡,顯示了應用程序的部署,但是,當我把在瀏覽器類似http://myserverdomain/springboot/hello我得到一個404錯誤。 我的服務器已經安裝MOD_JK有Apache服務器和Tomcat服務器同時提供靜態文件和Java應用程序,爲了這個,我添加這個配置到httpd.conf成虛擬主機
<IfModule mod_jk.c>
JkMount /springboot ajp13
JkMount /springboot/* ajp13
</IfModule>
當我加入這個配置錯誤404傳遞到錯誤503服務不可用。 與我一樣,將Tomcat嵌入VPS中部署彈簧引導應用程序jar的步驟是什麼?