I am implementing rest webservice via a spring boot application.
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>com.myCompany</groupId> <artifactId>services</artifactId> <version>1.0-SNAPSHOT</version> <name>REST Services</name> <description>REST Services</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
application.properties
server.port=8082 server.contexPath=/services logging.level.org.springframework.web = DEBUG logging.level.com.myCompany= INFO logging.file = ../logs/services.log
Application launcher class
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Controller
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class AccountRestController { private static final Logger logger = LoggerFactory.getLogger(AccountRestController.class); @RequestMapping(value="/account", method=RequestMethod.GET) public void createAccount(){ logger.info("ACCOUNT METHOD CALLED"); } }
I see Did not find handler method for [/services/account] message in the console when I fire http://localhost:8082/services/account URL in the browser as shown below
2018-02-06 08:30:42.868 DEBUG 7532 --- [http-nio-8082-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /services/account 2018-02-06 08:30:42.868 DEBUG 7532 --- [http-nio-8082-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/services/account] 2018-02-06 08:30:42.869 DEBUG 7532 --- [http-nio-8082-exec-3] o.s.w.s.handler.SimpleUrlHandlerMapping : Matching patterns for request [/services/account] are [/**] 2018-02-06 08:30:42.869 DEBUG 7532 --- [http-nio-8082-exec-3] o.s.w.s.handler.SimpleUrlHandlerMapping : URI Template variables for request [/services/account] are {}
I dont see message – ACCOUNT METHOD CALLED in the console meaning controller method is not getting invoked.Can you please let me know why createAccount() method not getting called ?
Is controller class getting identified/scanned by Spring factory?
What is causing this error?
Advertisement
Answer
Please change server.contexPath
to server.contextPath
.
And try again, it should work as there’s no extra config
or code is there.
http://www.baeldung.com/spring-boot-application-configuration