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

找不到带有URI的HTTP请求与注释配置Spring MVC和Jetty的映射

诸腾
2023-03-14

我使用的是仅注释配置,服务器启动,但当我访问某个页面时,错误显示:

警告:在名为“org”的DispatcherServlet中,找不到URI为[/WEB-INF/view/main.jsp]的HTTP请求的映射。springframework。网状物servlet。调度员Servlet-d7259e'

控制器映射工作正常,但没有加载JSP页面。

我用的是Jetty 9.2.0。M0和Spring MVC 4.0.4-RELEASE。

码头配置:

private static final String CONTEXT_PATH = "/";
private static final String MAPPING_URL = "/*";

private void startServer(int port) throws Exception {
        Server server = new Server(port);
        server.addLifeCycleListener(new LifeCycleListener());
        server.setHandler(getServletContextHandler(getContext()));
        server.start();
        server.join();
    }

    private static ServletContextHandler getServletContextHandler(WebApplicationContext context) throws IOException {
        LOGGER.info("Preparing ServletContextHandler");
        ServletContextHandler contextHandler = new ServletContextHandler();
        contextHandler.setContextPath(CONTEXT_PATH);
        contextHandler.addServlet(new ServletHolder(new DispatcherServlet(context)), MAPPING_URL);
        contextHandler.addEventListener(new ContextLoaderListener(context));

        return contextHandler;
    }

    private static WebApplicationContext getContext() {
        LOGGER.info("Preparing annotation context");
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();    
        context.register(SpringMVCConfig.class);
        return context;
    }

SpringMVCConfig:

@Configuration
@ComponentScan(basePackages = "my.package.controller")
@EnableWebMvc
public class SpringMVCConfig extends WebMvcConfigurerAdapter {

    private static final Logger LOGGER = LogManager.getLogger(SpringMVCConfig.class);

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        LOGGER.info("Adding resource handlers");
        registry.addResourceHandler("/i/**").addResourceLocations("classpath:WEB-INF/images/");
        registry.addResourceHandler("/c/**").addResourceLocations("classpath:WEB-INF/css/");
        registry.addResourceHandler("/js/**").addResourceLocations("classpath:WEB-INF/javascripts/");
    }

    @Bean
    public ViewResolver prepareViewResolver() {
        LOGGER.info("Returning view resolver");
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("WEB-INF/view/");
        resolver.setSuffix(".jsp");
        // resolver.setViewClass(JstlView.class);
        return resolver;
    }

}

没有网络。xml或任何其他xml文件。

谢谢。

共有1个答案

范修伟
2023-03-14

在GitHub上使用这个skelet,它是一个有效的例子-https://github.com/jasonish/jetty-springmvc-thymeleaf-template

 类似资料:
  • 很抱歉再次问这种问题,但我无法通过查看其他线程和Spring doc来解决我的问题。 我正在使用maven的3.1.0.RELEASE,并尝试使用注释和java配置。 以下是我的web.xml: 这是我的档案web-application-config.xml. 我有两个类。第一个配置视图解析器 第二个定义我的控制器: 根据我的配置,我想一切都应该指向我的home()函数。然而,事实并非如此,以下

  • 我试图使"你好世界"应用与gradle,Spring引导和Springmvc与最简单的视图解析器和html。 我从thymeleaf spring启动示例开始,我只想删除thymeleaf,使用纯html和InternalResourceViewResolver创建一个更简单的mvc应用程序。我只有一句问候语。我想提供的html位于src/main/webapp/WEB-INF。当我运行应用程序时

  • 问题内容: 我的处理程序转发到internalresourceview’apiForm’,但随后出现错误404 RequestURI = / WEB-INF / pages / apiForm.jsp。我确定apiForm.jsp位于/ WEB-INF / pages / 这就是我的dispatcher.xml的样子。 问题答案: 看起来DispatcherServlet正在尝试处理对apiFor

  • 在学习Spring时,我试图运行Spring in Action的代码示例,但它向我展示了tomcat日志中提到的以下错误: 我正在尝试仅借助基于java的配置来配置spring。相同的代码如下所述: TestProjectInitializer.java WebConfig.java 根配置.java HomeController.java pom.xml web.xml 目录结构 请帮助我了解

  • 我正在尝试学习Spring Security性,第一个代码示例是在运行URL“http://localhost:8080/spring-security-helloworld-xml/welcome”并使用jetty插件作为服务器时出现这样的错误。 错误:org.springframework.web.servlet.pageNotFound noHandlerFound警告:在名为“mvc-di

  • 我写了一个spring boot项目。它有三个文件。 appconfig.java HelloController.java 当我尝试运行它时,它出现了错误“没有为名为'DispatcherServlet中URI[/springc1_01/]的HTTP请求找到映射”。这是因为服务器没有找到控制器还是其他原因?THX.