kanda
kanda

Reputation: 21

NO MAPPING FOUND IN SPRING BOOT

I created a simple spring boot app when i try to hit the endpoint http://localhost:9094/kan/echo am getting the below exception please help me resolve it o.s.web.servlet.PageNotFound : No mapping for GET i have attached the controller class and pom.xml file can anyone help me out

@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/kan")
public class TestController {

     @GetMapping(value = "/echo", produces = {"application/json"})
    public List<Employee> fetch(){
        List<Employee> tempEmployees = new ArrayList<>();
        Employee emp1= new Employee();
        emp1.setName("emp1");
        emp1.setDesignation("manager");
        emp1.setEmpId("1");
        emp1.setSalary(3000);
        tempEmployees.add(emp1);
        return tempEmployees;
    }

    }

pom.xml

<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.package</groupId>
    <artifactId>javainuse</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBootHelloWorld</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            </dependency>
            <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

properties file

server.port=9094

project structure https://i.sstatic.net/JXCzm.png

Upvotes: 1

Views: 1592

Answers (1)

Avijit Barua
Avijit Barua

Reputation: 3086

According to your project structure, I think you are facing an error because of the misplacement of your main class. your project structure should be like

src/main/java
    |-com.kanda
          |-javainuse(package)
               |-TestController.java
          |-model(package)
               |-Employee.java
          SpringBootHelloWorldApplication.java

In you project first create a package com.kanda where you put javainuse,model and your main class SpringBootHelloWorldApplication.java. And in inner package put your controller and model class. In springboot it is require to put main class in main package.

updated project structure https://i.sstatic.net/ORAgl.png

Upvotes: 1

Related Questions