Как минимизировать HTML-ответ в Google App Engine

#java #spring-boot #google-app-engine

#java #весенняя загрузка #google-app-engine

Вопрос:

У меня есть приложение Spring Boot, размещенное в Google App Engine. Работает нормально. Я попытался минимизировать HTML-ответ. Minify работал на моем локальном компьютере с Tomcat.

Но минимизировать не работает в Google App Engine.

pom.xml

 <dependency>
    <groupId>com.googlecode.htmlcompressor</groupId>
    <artifactId>htmlcompressor</artifactId>
    <version>1.5.2</version>
</dependency>
<dependency>
    <groupId>com.yahoo.platform.yui</groupId>
    <artifactId>yuicompressor</artifactId>
    <version>2.4.8</version>
    <exclusions>
        <exclusion>
            <artifactId>js</artifactId>
            <groupId>rhino</groupId>
        </exclusion>
    </exclusions>
</dependency>
  

Filter.java

 @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletResponse httpResponse = (HttpServletResponse) response;
    PrintWriter outWriter;
    try {
        CharResponseWrapper responseWrapper = new CharResponseWrapper((HttpServletResponse) response);
        chain.doFilter(request, responseWrapper);
        String servletResponse = responseWrapper.toString();
        if (servletResponse != null amp;amp; !servletResponse.equals("")) {
            outWriter = httpResponse.getWriter();
            outWriter.write(compressor.compress(servletResponse));
            outWriter.flush();
            outWriter.close();
        }
    } catch (Exception ex) {

    }
}
  

CharResponseWrapper.java

 package com.app.filter;

import java.io.CharArrayWriter;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

public class CharResponseWrapper extends HttpServletResponseWrapper 
{
    private final CharArrayWriter output;

    public CharResponseWrapper(HttpServletResponse response)
    {
        super(response);
        output = new CharArrayWriter();
    }

    @Override
    public PrintWriter getWriter() 
    {
        return new PrintWriter(output);
    }
    
    @Override
    public String toString() 
    {
        return output.toString();
    }    
}
  

В Google App Engine

 CharResponseWrapper responseWrapper = new CharResponseWrapper((HttpServletResponse) response);
  

responseWrapper имеет значение null;

Ответ №1:

Вы можете попробовать написать сценарий развертывания, который создает копию вашего кода с уменьшенным HTML, а затем вызвать его при развертывании.