有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring Boot无法访问REST控制器

我有一个简单的问题——SpringBootApplication看不到我的控制器——更奇怪的是——只有三个控制器中的一个

我有UserController、WalletController和DashboardController——这一个在我的应用程序中不可见

我已经做的是:

  1. 带有控制器的每个包都在主包下,我的Springboot应用程序在主包下。班级是
  2. 我试着为Springboot应用程序注释main。使用BasePackage和BasePackageClass的组件扫描
  3. 没有其他bean——它们应该被注释为@Component,我删除了它们,并将方法移动到我的仪表板服务。班级

这是我的控制器,不可见: DashboardController

这是我的包结构(似乎是正确的):Package Structure

谢谢你的帮助

编辑:

使用第三方api获取所需数据可能很重要

在这种方法中,我使用url

    private String getNbpJson(String url) {
        return new RestTemplate().getForObject(url, String.class);
    }

    private CurrentRateDTO getCurrentExchangeRate(String json) throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();

        JsonNode node = mapper.readTree(json);

        String code = node.get("code").toString();
        String date = node.get("rates").get(0).get("effectiveDate").toString();

        double bid = node.get("rates").get(0).get("bid").asDouble();
        double ask = node.get("rates").get(0).get("ask").asDouble();

        return new CurrentRateDTO(code, date, bid, ask);
    }

然后在ExchangeService中,这是我的url

@Service
public class ExchangeRateService implements IExchangeRateService {

    private static final Logger logger = LoggerFactory.getLogger(ExchangeRateService.class);

    private String NBP_CURRENT_RATE_URL = "http://api.nbp.pl/api/exchangerates/rates/c/eur/2020-12-11/?format=json";

更重要的是。。。当我将方法从仪表板控制器移动到WalletController时(这很有效)

我发现的另一件事是,只有使用第三方api的方法不起作用。 基本上,我从上面的url检索数据——我获取特定字段,创建一个带有填充字段的对象

从第三方检索数据,然后在我的应用程序中实现,可能会有问题吗

我现在没有更多的想法


共 (1) 个答案

  1. # 1 楼答案

    也许您的控制器已注册,但您键入的url略有不同。试试这个属性logging.level.org.springframework.web.servlet.mvc.method.annotation: TRACE

    并在应用程序启动时检查控制器是否在其他url下注册

    尝试将其添加到控制器中

    @RestController()   
    @RequestMapping("exchangerates")