编辑:所以我发现 web.xml<load-on-startup>1</load-on-startup>
标记是我需要的,但显然它不支持灵活。有替代方案吗?
所以这可能是一个非常明显的问题,但我无法弄清楚..
我有一个 AppEngine 柔性环境服务器,并使用这个 servlet。
@SuppressWarnings("serial")
@WebServlet(name = "servlet", value = "/")
public class FirebaseServlet extends HttpServlet {
private static final String TAG = FirebaseServlet.class.getSimpleName();
private DatabaseReference reference;
@Override
public void init() throws ServletException {
FirebaseOptions options = ...
Log.d(TAG, "debug");
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().println("Server Running...");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
}
@Override
public void destroy() {
super.destroy();
}
}
那么当我运行这个命令时:
mvn clean jetty:run
它将在 localhost:8080 上运行,但我总是必须实际打开 Web 浏览器,然后导航到 localhost:8080,如果我已经在上面,我必须在每次运行 jetty:run 命令时刷新页面。在我继续 localhost/refresh 之后,servlet 启动,初始化 firebase 侦听器并打印 *Sysout
debug
所以我确定我在这里忽略了一些非常明显的东西,我怎样才能让它自动启动 servlet?这样我就不必浏览 localhost 网页,或者在生产的情况下,导航到 apppot 页面。
如果需要,这是我的 App.yaml
runtime: java
env: flex
manual_scaling:
instances: 1
handlers:
- url: /.*
script: this field is required, but ignored
secure: always
runtime_config: # Optional
jdk: openjdk8
server: jetty9
resources:
cpu: 0.5
memory_gb: 0.6
disk_size_gb: 10
env_variables:
BUCKET_NAME: YOUR-BUCKET-NAME=bucketname.appspot.com