【问题标题】:AWS Elastic Beanstalk SpringBoot fat WAR : jsp not foundAWS Elastic Beanstalk Spring Boot fat JAR:找不到jsp
【发布时间】:2021-03-29 01:42:09
【问题描述】:

我有

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

在我的 application.properties 中。我用gradle bootWar 创建了一个独立的战争。 jsp 文件在本地运行时可以正常解析,但在 eb 上找不到 jsp 文件,并且以 404 结尾。我使用的是简单的 eb amz linux 2 环境。

值得注意的是 eb 如何运行文件:java -jar application.**jar** 而不是 java -jar application.**war**

我的问题是:

  1. 将其作为 WAR 运行会解决问题吗?如何让 eb 将其作为 WAR 运行?
  2. 如果答案。 #1 是在 eb tomcat 环境中使用非独立 WAR,我必须使用哪些选项才能使其使用 ssl?独立 WAR 使用应用程序属性配置 ssl。这会继续有效吗?

感谢您的帮助。

【问题讨论】:

    标签: java amazon-web-services spring-boot tomcat amazon-elastic-beanstalk


    【解决方案1】:

    我使用带有 Thymeleaf 的 Spring Boot 应用程序,从未见过在模板文件夹中找不到视图的问题。请参阅此 AWS 教程,该教程构建了一个调用 AWS 服务并将其部署到 AWS Elastic Beanstalk 的基本 Spring Boot 应用程序。

    顺便说一下,这个应用程序是作为 JAR 部署的:

    https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/usecases/creating_first_project

    【讨论】:

    • 是的,thymeleaf 适用于 jar 包,但 afaik jsp 不适用。这是因为包结构,但我不完全理解根本原因。
    【解决方案2】:

    我修复了 war 打包的问题,​​并将其部署在 eb tomcat 环境中。 SSL 现在由 nginx 反向代理而不是应用服务器处理。

    这是我的 nginx 代理配置,以备不时之需:

    user                    nginx;
    error_log               /var/log/nginx/error.log warn;
    pid                     /var/run/nginx.pid;
    worker_processes        auto;
    worker_rlimit_nofile    32714;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        include       conf.d/*.conf;
    
        map $http_upgrade $connection_upgrade {
            default     "upgrade";
        }
    
        server {
            listen       443 default ssl;
            server_name  localhost;
            error_page  497 https://$host$request_uri;
    
            ssl_certificate      <full-path-to-fullchain.pem>;
            ssl_certificate_key  <full-path-to-privkey.pem>;
    
            ssl_session_timeout  5m;
            ssl_protocols  TLSv1.1 TLSv1.2;
            ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
            ssl_prefer_server_ciphers   on;
    
            if ($ssl_protocol = "") {
              rewrite ^ https://$host$request_uri? permanent;
            }
    
            client_header_timeout 60;
        client_max_body_size  10M;
            client_body_timeout   60;
            keepalive_timeout     60;
            gzip                  off;
            gzip_comp_level       4;
            gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    
            # Include the Elastic Beanstalk generated locations
            include conf.d/elasticbeanstalk/*.conf;
    
        }
        
        server {
            listen 80;
            return 301 https://$host$request_uri;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-09
      • 2020-08-06
      • 2020-04-29
      • 2021-08-01
      • 1970-01-01
      • 2020-11-26
      • 2018-04-26
      • 2013-08-24
      • 2020-03-14
      相关资源
      最近更新 更多