एम्बेडेड टॉमकैट के साथ मेरे स्प्रिंग बूट एप्लिकेशन के लिए, कुछ सीमा के कारण मुझे spring-boot-maven-plugin
से दूर करने की आवश्यकता है और maven-shade-plugin
का उपयोग करने की आवश्यकता है। मैवेन पैकेज कमांड के साथ मैं सफलतापूर्वक जार फ़ाइल बना सकता हूं। हालांकि, मेरे सभी नियंत्रकों ने काम करना बंद कर दिया और मुझे 404 त्रुटि देता है। मेरे संसाधन फ़ोल्डर में भी स्थिर सामग्री को अब सेवा नहीं दी जा रही है। हमेशा 404 त्रुटि प्राप्त हो रही है।मेवेन छाया प्लगइन के साथ वसंत बूट - नियंत्रक मैप नहीं किए गए (404 त्रुटि)
मेरी pom.xml
<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>
मैं हमेशा की तरह एप्लिकेशन को चलाने:
@SpringBootApplication
public class MyMainClass{
public static void main(String[] args) {
SpringApplication.run(MyMainClass.class, args);
}
}
इसके अलावा, मैं EmbeddedServletContainerFactory सेम निम्नलिखित बनाने के लिए किया था, अन्यथा कोई त्रुटि फेंक दिया जाएगा।
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
return tomcat;
}
अंत में, मैं सिर्फ एक एक नमूना नियंत्रक है,
@RequestMapping(value = "/car", method = RequestMethod.GET)
@ResponseBody
public Car test() {
return new Car();
}
यह वही कोड किसी भी मुद्दे के बिना काम करता है जब मैं वसंत-बूट-Maven प्लगइन का उपयोग। मैवेन-शेड-प्लगइन का उपयोग शुरू करने के तुरंत बाद, टोमकैट सफलतापूर्वक बूट हो जाता है। हालांकि, सभी नियंत्रक मुझे 404 त्रुटि देते हैं। अगर मैं कुछ गलत कर रहा हूं तो कृपया मुझे मार्गदर्शन करें। देखें डॉक्टर
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>abc.MyMainClass</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.tooling</resource>
</transformer>
:
अगर किसी Maven के साथ वसंत बूट की एक काम उदाहरण प्रदान कर सकते हैं यह मददगार होगा छाया प्लगइन। धन्यवाद। –