स्प्रिंग बूट: लोकलहोस्ट पर रीस्ट कंट्रोलर (404) तक नहीं पहुंच सकता


105

मैं स्प्रिंग बूट वेबसाइट पर REST नियंत्रक उदाहरण को अनुकूलित करने का प्रयास कर रहा हूं। दुर्भाग्यवश, localhost:8080/itemURL प्राप्त करने का प्रयास करते समय मुझे निम्न त्रुटि मिली है ।

{
  "timestamp": 1436442596410,
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/item"
}

पोम:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>SpringBootTest</groupId>
   <artifactId>SpringBootTest</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <properties>
      <javaVersion>1.8</javaVersion>
      <mainClassPackage>com.nice.application</mainClassPackage>
      <mainClass>${mainClassPackage}.InventoryApp</mainClass>
   </properties>

   <build>
      <plugins>
         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
               <source>${javaVersion}</source>
               <target>${javaVersion}</target>
            </configuration>
         </plugin>

         <!-- Makes the Spring Boot app executable for a jar file. The additional configuration is needed for the cmd: mvn spring-boot:repackage 
            OR mvn spring-boot:run -->
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>

            <configuration>
               <mainClass>${mainClass}</mainClass>
               <layout>ZIP</layout>
            </configuration>
            <executions>
               <execution>
                  <goals>
                     <goal>repackage</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>

         <!-- Create a jar with a manifest -->
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
               <archive>
                  <manifest>
                     <mainClass>${mainClass}</mainClass>
                  </manifest>
               </archive>
            </configuration>
         </plugin>
      </plugins>
   </build>

   <dependencyManagement>
      <dependencies>
         <dependency>
            <!-- Import dependency management from Spring Boot. This replaces the usage of the Spring Boot parent POM file. -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.2.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>

         <!-- more comfortable usage of several features when developing in an IDE. Developer tools are automatically disabled when 
            running a fully packaged application. If your application is launched using java -jar or if its started using a special classloader, 
            then it is considered a 'production application'. Applications that use spring-boot-devtools will automatically restart whenever files 
            on the classpath change. -->
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <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>

      <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
         <version>15.0</version>
      </dependency>
   </dependencies>
</project>

स्टार्टर-आवेदन:

package com.nice.application;
@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class InventoryApp {
   public static void main( String[] args ) {
      SpringApplication.run( InventoryApp.class, args );
   }
}

बाकी-नियंत्रक:

package com.nice.controller; 
@RestController // shorthand for @Controller and @ResponseBody rolled together
public class ItemInventoryController {
   public ItemInventoryController() {
   }

   @RequestMapping( "/item" )
   public String getStockItem() {
      return "It's working...!";
   }

}

मैं मावेन के साथ इस परियोजना का निर्माण कर रहा हूं। इसे जार (स्प्रिंग-बूट: रन) और साथ ही आईडीई (एक्लिप्स) के अंदर शुरू किया।

कंसोल लॉग:

2015-07-09 14:21:52.132  INFO 1204 --- [           main] c.b.i.p.s.e.i.a.InventoryApp          : Starting InventoryApp on 101010002016M with PID 1204 (C:\eclipse_workspace\SpringBootTest\target\classes started by MFE in C:\eclipse_workspace\SpringBootTest)
2015-07-09 14:21:52.165  INFO 1204 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7a3d45bd: startup date [Thu Jul 09 14:21:52 CEST 2015]; root of context hierarchy
2015-07-09 14:21:52.661  INFO 1204 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
2015-07-09 14:21:53.430  INFO 1204 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2015-07-09 14:21:53.624  INFO 1204 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2015-07-09 14:21:53.625  INFO 1204 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.23
2015-07-09 14:21:53.731  INFO 1204 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2015-07-09 14:21:53.731  INFO 1204 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1569 ms
2015-07-09 14:21:54.281  INFO 1204 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2015-07-09 14:21:54.285  INFO 1204 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'characterEncodingFilter' to: [/*]
2015-07-09 14:21:54.285  INFO 1204 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2015-07-09 14:21:54.508  INFO 1204 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7a3d45bd: startup date [Thu Jul 09 14:21:52 CEST 2015]; root of context hierarchy
2015-07-09 14:21:54.573  INFO 1204 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2015-07-09 14:21:54.573  INFO 1204 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)
2015-07-09 14:21:54.594  INFO 1204 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-07-09 14:21:54.594  INFO 1204 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-07-09 14:21:54.633  INFO 1204 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-07-09 14:21:54.710  INFO 1204 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2015-07-09 14:21:54.793  INFO 1204 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2015-07-09 14:21:54.795  INFO 1204 --- [           main] c.b.i.p.s.e.i.a.InventoryApp          : Started InventoryApp in 2.885 seconds (JVM running for 3.227)
2015-07-09 14:22:10.911  INFO 1204 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2015-07-09 14:22:10.911  INFO 1204 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2015-07-09 14:22:10.926  INFO 1204 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 15 ms

मैंने अब तक क्या प्रयास किया है:

  • एप्लिकेशन नाम के साथ URL एक्सेस करना (InventoryApp)
  • @RequestMapping("/")वर्ग के स्तर पर एक और रखोItemInventoryController

जहां तक ​​मुझे समझ में आया, स्प्रिंग बूट का उपयोग करते समय मुझे एप्लिकेशन-संदर्भ की आवश्यकता नहीं होगी। क्या मैं सही हू?

URL के माध्यम से विधि का उपयोग करने के लिए मैं और क्या कर सकता हूं?


आप एप्लिकेशन कैसे चला रहे हैं? क्या आप शायद कुछ लॉग को शामिल कर सकते हैं?
१२:५२ बजे जूल

ग्रहण के माध्यम से और मावन वसंत-बूट के साथ इसे अलग करने की कोशिश की: रन (जार के रूप में)। लॉग के लिए ऊपर देखें (संपादित)
mchlfchr

स्टार्टअप लॉग से ऐसा नहीं लगता है कि यह आपके नियंत्रक को ढूंढ रहा है, आपका नियंत्रक वर्ग किस पैकेज में है?
13

1
यह एक अलग पैकेज में है। मुख्य विधि के साथ स्टार्टर क्लास "एप्लिकेशन" में है जबकि नियंत्रक पैकेज "नियंत्रक" में है। मैंने उदाहरणों को देखा है (वसंत पर लोगों को नहीं)। जो कि उस तरह से भी संरचित थे।
मचफ्लेचर

4
डिफ़ॉल्ट रूप से स्प्रिंग-बूट एक ही पैकेज में घटकों के लिए स्कैन करेगा, या आपके एप्लिकेशन वर्ग के रूप में "नीचे" (समान उपसर्ग) पैकेज करेगा। अन्यथा आपको उनके लिए स्पष्ट रूप से स्कैन करने की आवश्यकता है, जैसे @ComponentScan
13 मार्च को मैट '

जवाबों:


198

अपने InventoryApp वर्ग में निम्न जोड़ने का प्रयास करें

@SpringBootApplication
@ComponentScan(basePackageClasses = ItemInventoryController.class)
public class InventoryApp {
...

स्प्रिंग-बूट नीचे दिए गए पैकेजों में घटकों के लिए स्कैन करेगा com.nice.application, इसलिए यदि आपके नियंत्रक को आपके com.nice.controllerलिए इसे स्पष्ट रूप से स्कैन करने की आवश्यकता है।


मेरी वही समस्याएं हैं। मैं घटकों के साथ प्रयास करता हूं, लेकिन कुछ भी नहीं :-( मेरे प्रश्न का उत्तर दें: stackoverflow.com/questions/33000931/…
emoleumassi

1
कृपया ध्यान दें कि @SpringBootApplicationइसमें शामिल है@Configuration
krzakov

9
एप्लिकेशन को "रूट" पैकेज में रखना आसान लगता है, उदाहरण के लिए "org.whatever" और उप-पैकेज में नियंत्रक, सेवाएं।
इन्सान-ए

7
मैं एक ही समस्या है, लेकिन इस समाधान पर आने से पहले मैंने इसे पाया ... और अधिक। अपने स्प्रिंग बूट एप्लिकेशन क्लास (जिसमें मुख्य विधि को परिभाषित किया गया है) को कंट्रोलर पैकेज में एक स्तर तक ले जाएं .. फिर नियंत्रक इस पर दिखाई देंगे और काम करेंगे
तैयब हुसैन

1
आप '@ComponentScan (basePackages = "com.nice.controller")' का भी उपयोग कर सकते हैं। घटक डिफ़ॉल्ट स्कैन पथ पर शुरू होता है, जहां ऐप क्लास है और सहायक पैकेज भी स्कैन करता है। उस स्थिति में आपको @ComponentScan एनोटेशन का उपयोग करने की आवश्यकता नहीं है। यह अपने आप होता है। यदि आपके पास 1 से अधिक नियंत्रक हैं, तो उन्हें विभिन्न पैकेजों में भी रखना संभव है, आप उन्हें चेन कर सकते हैं। उस मामले में संघर्ष से बचना महत्वपूर्ण है।
20 अप्रैल को हरिप्रसाद

48

Mattr के जवाब देने के लिए जोड़ा जा रहा है:

के रूप में में कहा गया है यहाँ , @SpringBootApplicationस्वचालित रूप से जरूरत एनोटेशन सम्मिलित करता है: @Configuration, @EnableAutoConfiguration, और भी @ComponentScan; हालाँकि, @ComponentScanवसीयत केवल उसी पैकेज के घटकों को खोजेगी जो ऐप में है, इस स्थिति में आपका com.nice.application, जबकि आपका कंट्रोलर रहता है com.nice.controller। इसलिए आपको 404 मिलते हैं क्योंकि ऐप को applicationपैकेज में नियंत्रक नहीं मिला ।


5
यदि यह उपरोक्त स्पष्टीकरण से पहले से ही पूरी तरह से स्पष्ट नहीं है, तो @SpringBootApplication एनोटेशन के साथ वर्ग ABOVE होना चाहिए या आपकी निर्देशिका संरचना में उसी स्तर पर होना चाहिए जैसा कि आप इसे ढूंढना चाहते हैं। उदाहरण के लिए, मेरे पास com.app.configuration और com.app.controllers थे। मैंने गलती से अपनी Application Class को com.app.configuration में डाल दिया, और com.app.configuration में बाकी सब कुछ ठीक रहा, लेकिन com.app.controllers में कुछ भी लोड नहीं हो रहा था। मैंने अपने एप्लिकेशन वर्ग को com.app में स्थानांतरित किया और सेम कहीं और पाए गए और चीजें काम करने लगीं। मेरे लिए रूकी गलती।
glaukommatos

2
@ComponentScan (basePackages = "com.base.package") को जोड़ते हुए इसे मेरे मामले में हल कर दिया गया
शामली

यह वास्तव में मदद करता है।
मधु टॉमी

12

स्प्रिंगबूट डेवलपर्स अन्य वर्गों के ऊपर एक मूल पैकेज में आपके मुख्य एप्लिकेशन वर्ग का पता लगाने की सलाह देते हैं। रूट पैकेज का उपयोग करने से भी आधारभूत विशेषता को निर्दिष्ट करने की आवश्यकता के बिना @ComponentScan एनोटेशन का उपयोग किया जा सकता है । विस्तृत जानकारी लेकिन सुनिश्चित करें कि कस्टम रूट पैकेज मौजूद है।


10

नीचे दिए गए कोड के साथ निष्पादित की गई समान 404 प्रतिक्रिया मुझे मिली

@Controller
@RequestMapping("/duecreate/v1.0")
public class DueCreateController {

}

उत्तर:

{
"timestamp": 1529692263422,
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/duecreate/v1.0/status"
}

इसे नीचे कोड में बदलने के बाद मुझे उचित प्रतिक्रिया मिली

@RestController
@RequestMapping("/duecreate/v1.0")
public class DueCreateController {

}

उत्तर:

{
"batchId": "DUE1529673844630",
"batchType": null,
"executionDate": null,
"status": "OPEN"
}

1
अन्य पाठकों को यह नहीं देखना है, @Controller->@RestController
जनक मीणा

7

मेरे पास यह मुद्दा था और आपको अपने पैकेजों को ठीक करने की आवश्यकता है। यदि आपने http://start.spring.io/ से इस प्रोजेक्ट को डाउनलोड किया है, तो आपके पास कुछ पैकेज में अपनी मुख्य कक्षा है। उदाहरण के लिए यदि मुख्य वर्ग के लिए पैकेज है: "com.example" तब और आपके नियंत्रक को पैकेज में होना चाहिए: "com.example.controller"। उम्मीद है की यह मदद करेगा।


6

इसे दूर करने के लिए 2 विधि हैं

  1. पैकेज संरचना की शुरुआत में बूटअप एप्लिकेशन रखें और इसके अंदर सभी कंट्रोलर को आराम दें।

    उदाहरण :

    package com.spring.boot.app; - आप बूटअप एप्लिकेशन (यानी मुख्य विधि -SpringApplication.run (App.class, args););

    आप एक ही पैकेज संरचना के साथ रेस्ट कंट्रोलर उदाहरण: पैकेज com.spring.boot.app.rest;

  2. स्पष्ट रूप से बूटअप पैकेज में नियंत्रक को परिभाषित करें।

विधि 1 अधिक क्लीनर है।


1
स्प्रिंग बूट से बेस क्लास के अलावा कुछ पैकेज के तहत एप्लीकेशन क्लास से नफरत होती है। अगर बेस पैकेज ऑर्गन है। एसओएमएप्प और अगर हम इसे ऑर्गन के तहत डालते हैं। यह बम है ..: - /
प्रियांक ठक्कर

3

आपको नीचे दिखाए गए अनुसार स्टार्टर-एप्लिकेशन वर्ग को संशोधित करना होगा।

@SpringBootApplication

@EnableAutoConfiguration

@ComponentScan(basePackages="com.nice.application")

@EnableJpaRepositories("com.spring.app.repository")

public class InventoryApp extends SpringBootServletInitializer {..........

और कंट्रोलर, सर्विस और रिपोजिटरी पैकेज स्ट्रक्चर को अपडेट करें जैसा कि मैंने नीचे बताया है।

उदाहरण: REST- नियंत्रक

package com.nice.controller; -> इसे संशोधित करना होगा
package com.nice.application.controller;

आपको उन सभी पैकेजों के लिए उचित पैकेज संरचना का पालन करने की आवश्यकता है जो स्प्रिंग बूट एमवीसी प्रवाह में हैं।

इसलिए, यदि आप अपनी परियोजना बंडल पैकेज संरचनाओं को सही ढंग से संशोधित करते हैं तो आपका स्प्रिंग बूट ऐप सही तरीके से काम करेगा।


3
EnableAutoConfiguration @SpringBootApplication में शामिल है, इसलिए इसे जोड़ना बेकार है।
सोफियान

1

बदलें @RequestMapping( "/item" )के साथ @GetMapping(value="/item", produces=MediaType.APPLICATION_JSON_VALUE)

शायद यह किसी की मदद करेगा।


1
यह मुझे पहचान करने के लिए है कि मैं लिखा था मदद की nameबजाय valueमें @GetMapping
vortex.alex

0

मेरे पास एक ही त्रुटि थी, मैं आधार पैकेज नहीं दे रहा था। सही आधार पैकेज देते हुए, इसे संशोधित किया।

package com.ymc.backend.ymcbe;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages="com.ymc.backend")
public class YmcbeApplication {

    public static void main(String[] args) {
        SpringApplication.run(YmcbeApplication.class, args);
    }

}

ध्यान दें: .controller @ComponentScan (basePackages = "com.ymc.backend.controller") शामिल नहीं है क्योंकि मेरे पास कई अन्य घटक वर्ग हैं जो मेरी परियोजना को स्कैन नहीं करते हैं यदि मैं सिर्फ .controller हूं।

यहाँ मेरा नियंत्रक नमूना है:

package com.ymc.backend.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@CrossOrigin
@RequestMapping(value = "/user")
public class UserController {

    @PostMapping("/sendOTP")
    public String sendOTP() {
        return "OTP sent";
    };


}

0

कभी-कभी स्प्रिंग बूट अजीब व्यवहार करते हैं। मैंने एप्लिकेशन क्लास में नीचे निर्दिष्ट किया है और यह काम करता है:

@ComponentScan("com.seic.deliveryautomation.controller")

0

मुझे Url Case Sens संवेदनशीलता के कारण 404 समस्या हुई ।

उदाहरण के लिए @RequestMapping(value = "/api/getEmployeeData",method = RequestMethod.GET)उपयोग किया जाना चाहिए http://www.example.com/api/getEmployeeData। अगर हम उपयोग कर रहे हैंhttp://www.example.com/api/getemployeedata , तो हमें 404 त्रुटि मिलेगी।

नोट: http://www.example.comकेवल संदर्भ के लिए है जो मैंने ऊपर उल्लेख किया है। यह आपका डोमेन नाम होना चाहिए जहां आपने अपने एप्लिकेशन को होस्ट किया था।

बहुत संघर्ष के बाद और इस पोस्ट में अन्य सभी उत्तरों को लागू करने के बाद, मुझे लगा कि समस्या केवल उस यूआरएल के साथ है। यह मूर्खतापूर्ण समस्या हो सकती है। लेकिन इसमें मेरे 2 घंटे लगे। इसलिए मुझे उम्मीद है कि यह किसी की मदद करेगा।


0

मेरे लिए, मैं अपने pom.xml में स्प्रिंग-बूट-स्टार्टर-वेब के बजाय स्प्रिंग-वेब जोड़ रहा था

जब मैं इसे स्प्रिंग-वेब से स्प्रिंग-बूट-स्टार्टर-वेब में बदल देता हूं, तो सभी मैपिंग को कंसोल लॉग में दिखाया जाता है।


0

यह भी काम करता है यदि हम निम्नानुसार उपयोग करते हैं:

@SpringBootApplication(scanBasePackages = { "<class ItemInventoryController package >.*" })

0

यह हो सकता है कि पोर्ट 8080 पर कुछ और चल रहा हो, और आप वास्तव में इसे गलती से जोड़ रहे हैं।

निश्चित रूप से इसे देखें, खासकर यदि आपके पास डॉकर्स हैं जो अन्य सेवाओं को ला रहे हैं जिन्हें आप नियंत्रित नहीं करते हैं, और उन सेवाओं को अग्रेषित कर रहे हैं।


0

समस्या आपके पैकेज संरचना के साथ है। स्प्रिंग बूट एप्लिकेशन में एक विशिष्ट पैकेज संरचना है, जो स्प्रिंग संदर्भ को उसके संदर्भ में विभिन्न फलियों को स्कैन और लोड करने की अनुमति देता है।

Com.nice.application में, जहाँ आपका Main Class है और com.nice.controller में, आपके पास अपनी नियंत्रक कक्षाएं हैं।

अपने com.nice.controller पैकेज को com.nice.application में ले जाएं ताकि स्प्रिंग आपकी फलियों तक पहुंच सके।


-1

आप पोम के अंदर जोड़ सकते हैं।

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <version>XXXXXXXXX</version>
</dependency>

-2

उदाहरण के लिए अपने स्प्रिंगबूटेप्लीकेशन क्लास को रूट पैकेज में रखें यदि आपकी सेवा, कंट्रोलर स्प्रिंगबुट.डिसीज़ पैकेज में है तो आपका मुख्य वर्ग स्प्रिंगबूट पैकेज में होना चाहिए अन्यथा यह पैकेजों के नीचे स्कैन नहीं करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.