0

I am trying to invoke a POST service via Postman. My application is running on embedded tomcat server. However when I try to invoke the service, the error I get is "No mapping found for HTTP request with URI [/findrouting] in DispatcherServlet with name 'dispatcherServlet'" It is not even recognizing http:localhost:8080/

RoutingRequest and RoutingResponse are the POJOs with getters and setters. Am I missing something here. I did check lots of examples but didn't find any solution to my problem.

Please see my code below :

package com.ab.hello.ambassador.server; import java.util.Arrays; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.web.SpringBootServletInitializer; import org.springframework.context.ApplicationContext; @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(AmbassadorApplication.class, args); System.out.println("List of Beans instantiated"); String[] beanNames = ctx.getBeanDefinitionNames(); Arrays.sort(beanNames); for (String beanName : beanNames) { System.out.println(beanName); } } } package com.ab.hello.ambassador.server.controller; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static org.springframework.web.bind.annotation.RequestMethod.POST; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.dp.connect.ambassador.server.RoutingRequest; import com.dp.connect.ambassador.server.RoutingResponse; @RestController public class ApplicationController { @RequestMapping("/") public String index() { return "Spring Boot POC Welcomes You!"; } @RequestMapping(method = POST, value = "/findrouting", consumes = { APPLICATION_JSON_VALUE }, produces = { APPLICATION_JSON_VALUE }) public RoutingResponse findRoute(@RequestBody RoutingRequest request) throws Exception { // some business logic that would return response; as of now I have set it to null RoutingResponse response = null; return response; } } 
1
  • Please also post your console output after application startup and you invoking the service. Commented Oct 27, 2017 at 3:03

4 Answers 4

3

Thanks for your time. After struggling for quite a long time. I figured out this piece of code. Added annotation @EnableWebMvc. This solved my problem.

@SpringBootApplication @EnableWebMvc public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } 
Sign up to request clarification or add additional context in comments.

Comments

0

Try to define the path in your controller:

@RestController @RequestMapping("/") public class ApplicationController { @RequestMapping public String index() { return "Spring Boot POC Welcomes You!"; } @RequestMapping(method = POST, value = "/findrouting", consumes = { APPLICATION_JSON_VALUE }, produces = { APPLICATION_JSON_VALUE }) public RoutingResponse findRoute(@RequestBody RoutingRequest request) throws Exception { // some business logic that would return response; as of now I have set it to null RoutingResponse response = null; return response; } } 

1 Comment

Unfortunately, yes!
0

Change the below line

ApplicationContext ctx = SpringApplication.run(AmbassadorApplication.class, args);

with

ApplicationContext ctx = SpringApplication.run(Application.class, args);

1 Comment

Thanks Amit! But it seems I put the wrong line while posting the question. My code has the correct line
0

according to spring docs , seems need to Override a config method:

 @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.