#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, а затем вызвать его при развертывании.