Đối với ứng dụng khởi động mùa xuân của tôi với tomcat nhúng, do một số giới hạn tôi cần thực hiện với spring-boot-maven-plugin
và cần sử dụng maven-shade-plugin
. Với lệnh maven package tôi có thể tạo thành công tệp jar. Tuy nhiên, tất cả các bộ điều khiển của tôi ngừng hoạt động và cho tôi lỗi 404. Ngoài ra nội dung tĩnh được đặt trong thư mục tài nguyên của tôi không được phục vụ nữa. Luôn gặp lỗi 404.Khởi động mùa xuân Với Maven Shade Plugin - Bộ điều khiển không được ánh xạ (Lỗi 404)
pom.xml của tôi
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.2.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<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-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>abc.MyMainClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Tôi chạy các ứng dụng như bình thường:
@SpringBootApplication
public class MyMainClass{
public static void main(String[] args) {
SpringApplication.run(MyMainClass.class, args);
}
}
Ngoài ra tôi đã phải tạo ra sau đậu EmbeddedServletContainerFactory, nếu không một lỗi sẽ được ném ra.
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
return tomcat;
}
Cuối cùng, tôi chỉ có một bộ điều khiển một mẫu,
@RequestMapping(value = "/car", method = RequestMethod.GET)
@ResponseBody
public Car test() {
return new Car();
}
Mã này tương tự hoạt động mà không bất kỳ vấn đề khi tôi sử dụng plugin mùa xuân-boot-maven. Ngay sau khi tôi bắt đầu sử dụng maven-shade-plugin, tomcat khởi động thành công. tuy nhiên, tất cả các bộ điều khiển đều cho tôi lỗi 404. Hãy hướng dẫn tôi nếu tôi làm gì sai.
Nó sẽ rất hữu ích nếu ai đó có thể cung cấp một ví dụ làm việc của mùa xuân Boot với maven plugin bóng râm. Cảm ơn. –