spring cloud项目打包遇到“找不到符号”,符号是个类名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring cloud项目打包遇到“找不到符号”,符号是个类名相关的知识,希望对你有一定的参考价值。

参考技术A 其实以上提示已经很明显了,但是之前没有接触过 spring cloud 项目,又加上很久没有做后台开发[图片上传中...(微信图片编辑_20211009101700.jpg-2232d4-1633745866287-0)]

以下是解决办法:
找到提示类名的所在的项目 module ,使用 maven 打包 clean->install ,然后再打包这个 module 就不会报错了

构建 Spring MVC 应用程序,控制器“找不到符号”模型

【中文标题】构建 Spring MVC 应用程序,控制器“找不到符号”模型【英文标题】:Building Spring MVC application, Controller "Cannot find symbol" Model 【发布时间】:2016-08-19 14:12:02 【问题描述】:

我首先使用 gradle bootRun 成功构建了我的 Spring MVC 项目,并使用了以下控制器类:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController 

  @RequestMapping("/")
  public String hello() 
    return "resultPage";
  

然后我将其更改为将数据传递给我的视图类:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController 

  @RequestMapping("/")
  public String hello(Model model) 
    model.addAttribute("message", "Hello from the controller");
    return "resultPage";
  

当我现在构建我的项目时,我收到以下错误:

HelloController.java:13: error: cannot find symbol
    public String hello(Model model) 
                        ^
  symbol:   class Model
  location: class HelloController
1 error
:compileJava FAILED

FAILURE: Build failed with an exception.

任何想法我做错了什么?

【问题讨论】:

可能缺少导入? @MatiasElorriaga 是的,正确的!几分钟前我刚刚添加了一个答案。 【参考方案1】:

我发现了问题。

如果我们希望 DispatcherServlet 将 Model 注入到函数中,我们应该做的一件事就是导入 Model 类。

import org.springframework.ui.Model;

所以,我将我的控制器类更改为以下,它工作了!

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.ui.Model;

@Controller
public class HelloController 

  @RequestMapping("/")
  public String hello(Model model) 
    model.addAttribute("message", "Hello from the controller");
    return "resultPage";
  

【讨论】:

【参考方案2】:

您可以使用 ModelAndView API:

@RequestMapping("/")
public ModelAndView hello() 
    ModelAndView modelAndView = new ModelAndView("resultPage");
    modelAndView.addObject("message", "Hello from the controller");
    return modelAndView;

ModelAndView 文档:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/ModelAndView.html

【讨论】:

为什么作者一定要用它?它解决了问题?

以上是关于spring cloud项目打包遇到“找不到符号”,符号是个类名的主要内容,如果未能解决你的问题,请参考以下文章

找不到符号Maven打包找不到符号的问题排查

springboot项目打包时提示“程序包xxx不存在,找不到符号”

springboot项目打包时提示“程序包xxx不存在,找不到符号”

maven打包:找不到符号 符号: 方法 getXxx()

maven打包时报错:找不到符号,errors提示:符号:类 xxx位置:程序包 xxx.xxx

Maven打包项目的时候报找不到符号异常,打包之前是好的,打包报错之后原项目编译也出问题。