স্প্রিং বুট: লোকালহোস্টে রিস্ট কন্ট্রোলার অ্যাক্সেস করতে পারবেন না (404)


104

আমি স্প্রিং বুট ওয়েবসাইটে আরইএসটি কন্ট্রোলারের উদাহরণটি মানিয়ে নেওয়ার চেষ্টা করছি। দুর্ভাগ্যক্রমে আমি যখন localhost:8080/itemইউআরএল অ্যাক্সেস করার চেষ্টা করছি তখন আমি নিম্নলিখিত ত্রুটি পেয়েছি ।

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

Pom:

<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...!";
   }

}

আমি মাভেনকে নিয়ে এই প্রকল্পটি তৈরি করছি। এটি জার (স্প্রিং-বুট: রান) হিসাবে শুরু করুন এবং পাশাপাশি আইডিই (Eclipse) এর ভিতরে।

কনসোল লগ:

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 টি অ্যাক্সেস করা
  • এর @RequestMapping("/")ক্লাস স্তরে আরেকটি রাখুনItemInventoryController

আমি যতদূর বুঝতে পেরেছি, স্প্রিং বুট ব্যবহার করার সময় আমার কোনও অ্যাপ্লিকেশন-প্রসঙ্গের প্রয়োজন হবে না। আমি কি সঠিক?

URL এর মাধ্যমে পদ্ধতিটি অ্যাক্সেস করতে আমি আর কী করতে পারি?


আপনি কিভাবে অ্যাপ্লিকেশন চালাচ্ছেন? আপনি সম্ভবত কিছু লগ অন্তর্ভুক্ত করতে পারেন?
wjans

এটি Elpipse- এর মাধ্যমে এবং mvn বসন্ত-বুট দিয়ে separetely চেষ্টা করুন: চালান (জার হিসাবে)। লগগুলির জন্য (সম্পাদিত) উপরে দেখুন
mchlfchr

স্টার্টআপ লগ থেকে দেখে মনে হচ্ছে না এটি আপনার নিয়ামকটি সন্ধান করছে, আপনার নিয়ামক শ্রেণীর কোন প্যাকেজটি রয়েছে?
ম্যাটআর

1
এটি একটি পৃথক প্যাকেজে রয়েছে। প্রধান পদ্ধতি সহ স্টার্টার ক্লাসটি "অ্যাপ্লিকেশন" এ থাকে যখন নিয়ন্ত্রক প্যাকেজ "নিয়ন্ত্রণকারী" থাকে। আমি উদাহরণগুলি দেখেছি (বসন্ত.io এ নয়), যেগুলিও সেভাবে কাঠামোগত হয়েছিল।
mchlfchr

4
ডিফল্টরূপে বসন্ত-বুট একই প্যাকেজের উপাদানগুলির জন্য, বা আপনার অ্যাপ্লিকেশন শ্রেণির হিসাবে "নীচে" (একই উপসর্গ) প্যাকেজগুলির জন্য স্ক্যান করবে। অন্যথায় আপনাকে তাদের জন্য স্পষ্টভাবে স্ক্যান করতে হবে, যেমন @ কম্পোমেন্টসস্ক্যান
ম্যাটআর

উত্তর:


196

আপনার ইনভেন্টরি অ্যাপ্লিকেশন ক্লাসে নিম্নলিখিতগুলি যুক্ত করার চেষ্টা করুন

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

বসন্ত-বুট নীচের প্যাকেজগুলির উপাদানগুলির জন্য স্ক্যান করবে com.nice.application, সুতরাং যদি আপনার নিয়ামক থাকে তবে com.nice.controllerআপনাকে এটির জন্য স্পষ্টভাবে স্ক্যান করতে হবে।


আমারও একই সমস্যা আছে। আমি componentscan কিন্তু কিছুই দিয়ে চেষ্টা :-( Hier থেকে আমার প্রশ্ন: stackoverflow.com/questions/33000931/...
emoleumassi

1
দয়া করে মনে রাখবেন @SpringBootApplicationএতে অন্তর্ভুক্ত রয়েছে@Configuration
krzakov

9
অ্যাপ্লিকেশনটিকে "রুট" প্যাকেজ, যেমন "org.w काहीही" এবং কন্ট্রোলারগুলি, পরিষেবাগুলিকে প্যাকেজগুলিতে স্থাপন করা সবচেয়ে সহজ বলে মনে হয়।
ইনসান ই

7
আমার একই সমস্যা আছে তবে এই সমাধানে আসার আগে আমি এটি খুঁজে পেয়েছি ... আরও বেশি। আপনার বসন্ত বুট অ্যাপ্লিকেশন ক্লাসটি নিন (যাতে মূল পদ্ধতিটি সংজ্ঞায়িত করা হয়েছে) নিয়ামক প্যাকেজ পর্যন্ত এক স্তর পর্যন্ত .. তারপরে
নিয়ামকরা

1
আপনি '@ কম্পম্পোনটিস্ক্যান' (বেসপ্যাকেজ = "com.nice.controller") ব্যবহার করতে পারেন। উপাদান ডিফল্ট স্ক্যান শুরু হয়, যেখানে অ্যাপ্লিকেশন শ্রেণি রয়েছে এবং সহায়ক প্যাকেজগুলিও স্ক্যান করে। সেক্ষেত্রে আপনাকে @ কম্পোনেন্টস্ক্যান টীকাটি ব্যবহার করার দরকার নেই। এটি স্বয়ংক্রিয়ভাবে করে। আপনার যদি 1 টিরও বেশি নিয়ামক থাকে তবে এগুলি বিভিন্ন প্যাকেজের মধ্যে থাকাও সম্ভব, আপনি তাদের চেইন করতে পারেন। সেক্ষেত্রে দ্বন্দ্ব এড়ানো জরুরি।
হরিপ্রসাদ

46

MattR এর উত্তর যোগ করার পদ্ধতি:

হিসাবে বিবৃত এখানে , @SpringBootApplicationস্বয়ংক্রিয়ভাবে প্রয়োজনীয় টীকা সন্নিবেশ: @Configuration, @EnableAutoConfiguration, এবং এছাড়াও @ComponentScan; তবে, @ComponentScanকেবলমাত্র অ্যাপ্লিকেশন হিসাবে একই প্যাকেজের উপাদানগুলির সন্ধান করবে, এই ক্ষেত্রে আপনার com.nice.application, যেখানে আপনার নিয়ামকটি সেখানে থাকেন com.nice.controller। এজন্য আপনি 404 পান কারণ অ্যাপ্লিকেশনটি applicationপ্যাকেজে কোনও নিয়ামক খুঁজে পায় নি ।


5
উপরের ব্যাখ্যা থেকে এটি ইতিমধ্যে পরিষ্কার না হয়ে থাকলে, @ স্প্রিংবুট অ্যাপ্লিকেশন টীকা সহ ক্লাসটি আপনার ডিরেক্টরি কাঠামোর উপরে বা আপনার পছন্দসই জিনিসগুলির মতো একই স্তরে থাকতে হবে। উদাহরণস্বরূপ, আমার কাছে com.app.configration এবং com.app.controllers ছিল। আমি ভুল করে আমার অ্যাপ্লিকেশন ক্লাসটি com.app.configration এ রেখেছি এবং com.app.configration- এ থাকা সমস্ত কিছু ঠিকঠাকভাবে কাজ করেছে, তবে com.app.controllers এর কিছুই লোড হচ্ছে না। আমি আমার অ্যাপ্লিকেশন ক্লাস com.app এ সরিয়েছি এবং মটরশুটি অন্য কোথাও পাওয়া গেছে এবং জিনিসগুলি কাজ শুরু করেছে। আমার জন্য রুকি ভুল।
গ্লুকোমাটোস

2
@ComponentScan যোগ করার পদ্ধতি (basePackages = "com.base.package") এটা আমার ক্ষেত্রে মীমাংসিত
শামলি

এটি সত্যই সহায়তা করে।
মধু টমি

12

স্প্রিংবুট বিকাশকারীরা আপনার মূল অ্যাপ্লিকেশন ক্লাসটি অন্য শ্রেণীর উপরে একটি মূল প্যাকেজে সন্ধান করার পরামর্শ দেয়। একটি রুট প্যাকেজ ব্যবহার করে একটি বেসপ্যাকেজ অ্যাট্রিবিউট নির্দিষ্ট করার প্রয়োজন ছাড়াই @ কম্পোনেন্টস্ক্যান টীকাটি ব্যবহার করার অনুমতি দেয় । বিস্তারিত তথ্য তবে কাস্টম রুট প্যাকেজ উপস্থিত রয়েছে তা নিশ্চিত হন।


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 টি পদ্ধতি রয়েছে method

  1. প্যাকেজ কাঠামোর শুরুতে বুটআপ অ্যাপ্লিকেশনটি রাখুন এবং এর মধ্যে থাকা সমস্ত নিয়ামককে বিশ্রাম দিন।

    উদাহরণ:

    প্যাকেজ com.spring.boot.app; - আপনি অ্যাপ্লিকেশন বুটআপ করুন (যেমন মূল পদ্ধতি - স্প্রিং অ্যাপ্লিকেশন.আরুন (অ্যাপ্লিকেশন

    আপনি একই প্যাকেজ কাঠামোর সাথে নিয়ন্ত্রককে বিশ্রাম দিন উদাহরণ: প্যাকেজ com.spring.boot.app.rest;

  2. বুটআপ প্যাকেজে কন্ট্রোলারটিকে স্পষ্টভাবে সংজ্ঞায়িত করুন।

পদ্ধতি 1 আরও পরিষ্কার।


1
বসন্ত বুট আবেদন বর্গ কিছু বেস প্যাকেজ package..if বেস ছাড়া অন্য প্যাকেজের আওতায় হচ্ছে ঘৃণা org.someapp এবং আমরা যদি এটা org.someapp.app অধীন করা এটা বোমা ..: - /
Priyank থ্যাকার

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
সক্ষমআউটো কনফিগারেশনটি @ স্প্রিংবুট অ্যাপ্লিকেশনটিতে অন্তর্ভুক্ত রয়েছে সুতরাং এটি যুক্ত করা অযথা।
সোফিয়ান

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 @Comp घटकScan (বেসপ্যাকেজ = "com.ymc.backend.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

আমি 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কেবলমাত্র রেফারেন্সের জন্য যা আমি উপরে উল্লেখ করেছি। এটি আপনার ডোমেনের নাম হওয়া উচিত যেখানে আপনি নিজের অ্যাপ্লিকেশনটি হোস্ট করেছেন।

প্রচুর লড়াইয়ের পরে এবং এই পোস্টে অন্য সমস্ত উত্তর প্রয়োগ করার পরে, আমি পেয়েছি যে সমস্যাটি কেবল সেই ইউআরএল নিয়ে। এটি নির্বোধ সমস্যা হতে পারে। তবে আমার ২ ঘন্টা ব্যয় হয়েছে। সুতরাং আমি আশা করি এটি কারও সাহায্য করবে।


0

আমার জন্য, আমি আমার pom.xML এ বসন্ত-বুট-স্টার্টার-ওয়েবের পরিবর্তে স্প্রিং-ওয়েব যুক্ত করছিলাম

আমি যখন এটি বসন্ত-ওয়েব থেকে স্প্রিং-বুট-স্টার্টার-ওয়েবে প্রতিস্থাপন করি তখন সমস্ত ম্যাপিং কনসোল লগতে প্রদর্শিত হয়।


0

আমরা নিম্নলিখিত হিসাবে ব্যবহার করলে এটি কাজ করে:

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

0

এটি হতে পারে যে 8080 বন্দরটিতে অন্য কিছু চলছে এবং আপনি আসলে ভুলক্রমে এর সাথে সংযোগ করছেন ing

অবশ্যই এটি পরীক্ষা করে দেখুন, বিশেষত আপনার যদি এমন ডকার থাকে যা আপনার নিয়ন্ত্রণ না করে এমন অন্যান্য পরিষেবাদি নিয়ে আসে এবং সেই পরিষেবাগুলি পোর্ট ফরওয়ার্ড করে চলেছে।


0

সমস্যাটি আপনার প্যাকেজ কাঠামোর সাথে। স্প্রিং বুট অ্যাপ্লিকেশনটির একটি নির্দিষ্ট প্যাকেজ কাঠামো রয়েছে যা বসন্তের প্রসঙ্গে তার প্রসঙ্গে বিভিন্ন মটরশুটি স্ক্যান করতে এবং লোড করতে দেয়।

Com.nice.application এ যেখানে আপনার মেইন ক্লাস এবং com.nice.controller এ রয়েছে আপনার কন্ট্রোলার ক্লাস রয়েছে।

আপনার com.nice.controller প্যাকেজটি com.nice.application এ সরান যাতে বসন্ত আপনার মটরশুটি অ্যাক্সেস করতে পারে।


-1

আপনি POM এর ভিতরে যুক্ত করতে পারেন।

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

-2

রুট প্যাকেজে আপনার স্প্রিংবুট অ্যাপ্লিকেশন ক্লাস রাখুন উদাহরণস্বরূপ যদি আপনার পরিষেবা, নিয়ামকটি স্প্রিংবুট.অ্যাকিজ প্যাকেজে থাকে তবে আপনার মূল বর্গটি বসন্ত বুট প্যাকেজে থাকতে হবে অন্যথায় এটি প্যাকেজের নীচে স্ক্যান করবে না

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.