当前位置: 首页 > 知识库问答 >
问题:

gradle spring MVC spring boot jsp=404错误?

华懿轩
2023-03-14

我在src/main/webapp/WEB-INF/view/index中有一个带有jsp的spring启动应用程序。jsp

我有一个MVC配置:

@Configuration
public class MSMVCConfigurtionBeans extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/res/**").addResourceLocations("/static/");
    }

    @Bean()
    DispatcherServlet dispatcherServlet() {
        DispatcherServlet dispatcherServlet = new DispatcherServlet();
        return dispatcherServlet;
    }

    @Bean()
    ServletRegistrationBean dispatcherServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet(), "/");
        registration.setName("MVCDispatcher");
        return registration;
    }

    @Bean()
    ViewResolver viewResolver(){
        InternalResourceViewResolver irvr = new InternalResourceViewResolver();
        irvr.setPrefix("/WEB-INF/view/");
        irvr.setSuffix(".jsp");
        return irvr;
    }
}

我运行gradle bootRun并加载索引页,并在日志中看到这一点:

2018-01-17 13:36:17.623  INFO 50410 --- [nio-8080-exec-1] com.s.IndexController     : Running index from MVC, returning index view
2018-01-17 13:36:17.625 DEBUG 50410 --- [nio-8080-exec-1] o.s.w.servlet.view.BeanNameViewResolver  : No matching bean found for view name 'index'
2018-01-17 13:36:17.636 DEBUG 50410 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView  : Forwarding to resource [/WEB-INF/view/index.jsp] in InternalResourceView 'index'

第一条消息由我的控制器生成:

    @RequestMapping({"/", "/index"})
    public String index(){
        LOGGER.info("Running index from MVC, returning index view");
        return "index";
    }

这是我的gradle构建文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: "jacoco"
apply plugin: 'war'

jar {
    baseName = 'i-rest'
    version = '0.1.1'
}

repositories {
    mavenCentral()
    maven {
        url "https://dl.bintray.com/michaelklishin/maven/"
    }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-data-rest")
    compile("org.springframework.boot:spring-boot-starter-validation")
    compile("org.springframework.boot:spring-boot-starter-data-mongodb")
    compile("org.springframework.boot:spring-boot-starter-security")

    compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.4.2.Final'
    compile("org.springframework:spring-tx")
    compile 'org.springframework.security:spring-security-web'
    compile("org.springframework:spring-context-support")
    compile("org.quartz-scheduler:quartz:2.2.1")
    compile("org.projectlombok:lombok")
    compile("com.novemberain:quartz-mongodb:2.0.0")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

ls -al src/main/webapp/WEB-INF/view/
total 8
drwxr-xr-x  3 mike  staff   96 Jan 16 19:16 .
drwxr-xr-x  3 mike  staff   96 Jan 17 13:22 ..
-rw-r--r--  1 mike  staff  751 Jan 15 13:38 index.jsp

所以-我有我的控制器被调用,它正在打印它调度到的jsp(存在),为什么是404?我是否在gradle中丢失了一些没有将WEB-INF目录复制到正在运行的webapp的pwd中的内容?使用Maven-webapp目录被放入Target/中,因此它位于类路径上。少了什么?

编辑

我在build.gradle文件中添加了以下依赖项来解决这个问题:

compile("org.apache.tomcat.embed:tomcat-embed-jasper")
compile("javax.servlet:jstl")

另请参见:SpringBootJSP404

共有1个答案

斜高翰
2023-03-14

而不是

return "index"

作为一个字符串,你能尝试像下面这样的东西吗

@RequestMapping({"/", "/index"}) 
 public ModelandView index(){ 
     LOGGER.info("Running index from           MVC, returning index view"); 
    return new ModelandView("index"); 
 }
 类似资料:
  • 我已经跟随杰弗里·韦的教程。 教程: https://laracasts.com/series/real-time-laravel-with-socket-io/episodes/1 null 我尝试使用

  • 我不知道发生了什么,但在浏览器控制台中,我可以看到3个与字体相关的错误 我知道这是荒谬的,我不能自己解决这个问题,但一切似乎都好,在我的index.html我有这样的东西 这就是我所有与字体相关的东西,我已经检查了路径,我没有错。 这是发生在你们中间的吗? 更新 这是NGINX部分,我在头部加载了一些内容

  • 我的站点将XML转换为HTML页面。在“Web pages”文件夹中,我创建了一个文件夹“Acces”,其中将包含生成的HTML页面和使用的图像。生成过程正常工作,它将HTML和jpg文件以corect格式放置在Acces文件夹中。我可以从我的本地磁盘上访问它们。当我试图在localhost:8080/myapp/acces/img/image1.jpg访问jpg时,它可以工作,但当我访问loca

  • 我正在尝试spring-mvc和JSON。 项目在tomcat中部署成功,如localhost:8080/manager 所示 我试图发送json数据,并遵循“http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/” 我缺少什么? 谢谢

  • 我已经编写了一个Spring MVC应用程序,它显示了在XML视图中运行的测试用例和套件的报告。我已经编写了模型类,它很好,我已经编写了以下文件,但我想处理程序映射有一些问题 我的Controller.java类如下所示 我得到一个404错误,控制台显示错误为 在名为“MVC-Dispatcher”的DispatcherServlet中,未找到URI为[/springmvc/suite/suite

  • JSoup-1.8.1 尝试{ Document Document=Jsoup.connect(url.get(); 返回Document.getElementsByTag(“title”).text(); }catch(异常e){ System.out.println(e); 返回null; } org.jsoup.HttpStatusExc0019: HTTP错误获取URL。状态=404, U

  • 我已经创建了一个注册表。我不知道为什么现在它不再工作了。现在我收到一个404错误: 类型状态报告 信息/酒店预订/注册 说明源服务器找不到目标资源的当前表示形式,或不愿意透露存在该表示形式。 这是我的 登记Java语言 而这是我的 登记jsp 你认为我怎样才能解决这个问题?谢谢 编辑:这是我的: web.xml HTTP状态404–未找到 类型状态报告 信息/酒店预订/注册 说明源服务器找不到目标

  • 在此处输入图像描述 WEB内容: 在此处输入图像描述 我不知道这个项目有什么问题,我发誓在我来这里问这个问题之前,我真的试图搜索结果。希望你们帮帮我,谢谢!