繁体   English   中英

Springboot Restcontroller拒绝工作

[英]Springboot Restcontroller refusing to work

我花了最后2个小时,试图弄清楚我简单的springboot rest应用程序到底是怎么回事。

无论我做什么,我都无法使restcontroller正常工作,我尝试的每个URL都会给我一个404。这是下面的代码。

    @RestController 
    public class PbxPortalRestControllerSet {

     @RequestMapping("/testMe")
     public String testMe()
     {
      return "I am alive";
     }
   }



    @SpringBootApplication
    public class PbxPortalApplication {

    public static void main(String[] args) {
    SpringApplication.run(PbxPortalApplication.class, args);
     }
}
 Application.properties file
 server.port = 8088

谁能说出到底是怎么回事? 我曾经做过无数次这样的尝试,但是我无法终生弄清为什么它不起作用。

我尝试去localhost:8088 / testMe,然后得到404。

如果PbxPortalApplicationPbxPortalApplication类位于不同的程序包中,则需要告诉您的应用程序在加载应用程序上下文时扫描控制器。

@ComponentScan添加到您的PbxPortalApplication

@SpringBootApplication
@ComponentScan(basePackageClasses = PbxPortalRestControllerSet.class)
public class PbxPortalApplication

我发现了问题。 我使用了错误的POM条目。 我以某种方式使用泽西岛,而不是内置的春天。 由于某种原因,即使我使用了错误的库,eclipse也告诉我我的注释条目完全正确。 一旦我删除了Jersey的条目,一切正常

@RestController
public class DemoController {

    @GetMapping(value= "/getName")
    public String getName(){
        return "This is a Spring Boot Application";
    }
}

主类很简单:

package com.pcftest.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

你能尝试一次吗? 看看是否可行。

@RequestMapping(value= "/testMe" , method = RequestMethod.GET)

基本上有时候,当您不提供请求方法类型时,会得到此类错误

看来您已将控制器放置在与Spring SpringApplication文件不同的子包中。 所以无法从Spring main()访问Controller请添加

@SpringBootApplication
@ComponentScan("ControllersPackege")

CodeSnipet:SpringBootApplication

@SpringBootApplication
@ComponentScan("ControllerPackege")
public class PbxPortalApplication {

public static void main(String[] args) {
    SpringApplication.run(PbxPortalApplication.class, args);
    }
}

CodeSnipet:控制器

@RestController 
public class PbxPortalRestControllerSet {

@RequestMapping("/testMe")
     public String testMe()
     {
      return "I am alive";
     }
}

application.properties文件

server.port = 8088

注意:放入相同程序包或将控制器类放入子程序包的最佳方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM