Reputation: 611
Consider, following classes for my problem,
Boot Application java class :
package com.abb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = {"com.abb.repositories"})
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
CrudRepository interface ( it just added here because i feel package might cause this issue ) :
package com.abb.repositories;
import org.springframework.data.repository.CrudRepository;
import com.abb.entities.XYZ;
public interface XYZRepository extends CrudRepository<XYZ, Long> { }
Controller Java Class For rest API:
package com.abb.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.abb.repositories.XYZRepository;
@RestController
@RequestMapping("/abc")
public class ABCController {
@Autowired
private XYZRepository xyzRepository;
@RequestMapping(value = "/test", method = RequestMethod.POST)
public @ResponseBody String test(@RequestBody int iValue) {
return "done" + iValue;
}
}
Server Logs :
2017-10-25 22:22:25.579 INFO 4664 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2017-10-25 22:22:26.291 INFO 4664 --- [ restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4521e6e2: startup date [Wed Oct 25 22:22:17 IST 2017]; root of context hierarchy
2017-10-25 22:22:26.470 INFO 4664 --- [ restartedMain] 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)
2017-10-25 22:22:26.485 INFO 4664 --- [ restartedMain] 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,javax.servlet.http.HttpServletResponse)
2017-10-25 22:22:26.548 INFO 4664 --- [ restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-10-25 22:22:26.548 INFO 4664 --- [ restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-10-25 22:22:26.657 INFO 4664 --- [ restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-10-25 22:22:27.250 INFO 4664 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2017-10-25 22:22:27.344 INFO 4664 --- [ restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-10-25 22:22:27.470 INFO 4664 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-10-25 22:22:27.486 INFO 4664 --- [ restartedMain] com.yq.WhyqueueServerApplication : Started WhyqueueServerApplication in 10.814 seconds (JVM running for 11.612)
Upvotes: 1
Views: 6192
Reputation: 6390
The problem is that you are limiting spring boots scanner to only scan the repositories package. No other package will be scanned. This means it does not pick up your controllers, which are in "com.abb.controllers" package.
Remove the scanBasePackages attribute, replace the value, or add each individual package that you want scanned.
I recomend this:
@SpringBootApplication
Or this:
@SpringBootApplication(scanBasePackages = {"com.abb"})
Upvotes: 2