ElasticBeanstalk在WEB-INF / views中找不到jsp

时间:2017-01-18 10:05:35

标签: jsp spring-mvc spring-boot elastic-beanstalk amazon-elastic-beanstalk

我正在使用OAuth2创建一个Springboot应用程序,这意味着我需要能够解析一个login.jsp文件供用户登录。这一切都在本地工作但在EB上我为所有JSP目标获得404s。 OAuth端点在EB上工作正常,我仍然可以手动请求令牌,但是所有要求用户登录的请求都会产生以下网页:

There was an unexpected error (type=Not Found, status=404).
/WEB-INF/views/login.jsp

查看调试日志后,日志中唯一的区别是以下内容,对我而言似乎暗示EB上的路径不再有效,而且找不到我所在的src / main / webapp把WEB-INF / views / login.jsp

放进去

在localhost上:

2017-01-17 23:50:15.406 DEBUG 11872 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Code archive: /home/cillian/workspace/CogTracker/target/CogTracker-0.0.1-SNAPSHOT.jar
2017-01-17 23:50:15.407 DEBUG 11872 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Code archive: /home/cillian/workspace/CogTracker/target/CogTracker-0.0.1-SNAPSHOT.jar
2017-01-17 23:50:15.407 DEBUG 11872 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Document root: /home/cillian/workspace/CogTracker/src/main/webapp

在AWS ElasticBeanstalk上:

2017-01-17 23:23:12.438 DEBUG 1065 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Code archive: /var/app/current/application.jar
2017-01-17 23:23:12.440 DEBUG 1065 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Code archive: /var/app/current/application.jar
2017-01-17 23:23:12.441 DEBUG 1065 --- [           main] .t.TomcatEmbeddedServletContainerFactory : None of the document roots [src/main/webapp, public, static] point to a directory and will be ignored.

所以问题是,上传到EB是否要求文件位于不同的位置? ServletContext是否需要特定的参数才能在EB上找到文件?

参考我的WebApplicationInitializer类

public class DispatcherServletInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.scan("uk.ac");

        servletContext.addListener(new ContextLoaderListener(context));

        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(context));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }

}

和我的WebMvcConfigurerAdapter:

@Configuration
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
        configurer.enable();
    }

    @Override
    public void addViewControllers(final ViewControllerRegistry registry){
        super.addViewControllers(registry);
        registry.addViewController("/login.html");
        registry.addViewController("/welcome.html");
    }

    @Bean
    public InternalResourceViewResolver viewResolver(){
        final InternalResourceViewResolver resolver = new InternalResourceViewResolver();

        resolver.setViewClass(JstlView.class);

        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

}

0 个答案:

没有答案