Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “弹簧靴”;“无可用消息”;错误(状态=404),_Java_Spring_Spring Mvc - Fatal编程技术网

Java “弹簧靴”;“无可用消息”;错误(状态=404),

Java “弹簧靴”;“无可用消息”;错误(状态=404),,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在使用嵌入Tomcat的Spring Boot。 启动时,它会登录到控制台: s、 w.s.m.m.a.RequestMappingHandlerMapping:将“{[/home]}”映射到公共java.lang.String com.vlad.pet.contactlist.webapp.controller.SampleController.helloWorld(org.springframework.ui.Model) 所以我猜URL映射到了控制器。 但是给了我一个错误404 出现意

我正在使用嵌入Tomcat的Spring Boot。 启动时,它会登录到控制台:

s、 w.s.m.m.a.RequestMappingHandlerMapping:将“{[/home]}”映射到公共java.lang.String com.vlad.pet.contactlist.webapp.controller.SampleController.helloWorld(org.springframework.ui.Model)

所以我猜URL映射到了控制器。 但是给了我一个错误404

出现意外错误(类型=未找到,状态=404)。 没有可用的消息

Application.java

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    public static void main(final String[] args) {
        SpringApplication.run(Application.class, args);
    }
    //overrides the configure() method to point to itself, so Spring can find the main configuration.
    @Override
    protected final SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
    @Bean
    public ViewResolver getViewResolver() {
        final TilesViewResolver resolver = new TilesViewResolver();
        resolver.setViewClass(TilesView.class);
        return resolver;
    }
    @Bean
    public TilesConfigurer getTilesConfigurer() {
        final TilesConfigurer configurer = new TilesConfigurer();
        configurer.setDefinitions("WEB-INF/tiles/tiles.xml");
        configurer.setCheckRefresh(true);
        return configurer;
    }
}
SampleController.java

@Controller
public class SampleController {
    @RequestMapping (value = "/home")
    public String helloWorld(Model model) {
        model.addAttribute("pageTitle", "home");
        return "base";
    }
}
tiles.xml

<tiles-definitions>
    <definition name="base" template="/WEB-INF/tiles/basic/basic-template.jsp">
        <put-attribute name="head" value="/WEB-INF/tiles/basic/head.jsp" />
    </definition>
</tiles-definitions>


您正在从控制器方法返回“home”,但我在您的项目结构上没有看到home.jsp

我通过启用默认servlet解决了这个问题:

@Configuration
@EnableWebMvc
public class Config extends WebMvcConfigurerAdapter {
    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

来源:

您可以使用
@RestController
而不是
@Controller

@RestController
public class SampleController {
... 

在我的例子中,我的eclipse项目显示了一个错误。我必须从eclipse安装mvn,更新maven依赖项,然后从eclipse启动服务器。

对不起,这是打字错误,现在已编辑。控制器返回“base”,定义为tiles definition您是否更改了application.properties上的服务器端口?默认值为8080。因此,如果您没有更改它,URL应该是-In-application.properties:server.port=8090