簡體   English   中英

在Google AppEngine中使用app.yaml

[英]Using app.yaml in Google AppEngine

我正在AppEngine上運行Java應用程序,並且想使用app.yaml。 我已閱讀文檔,並在WEB-INF文件夾中創建了一個app.yaml應用,其中包含以下內容

application: myprojectname
version: 1
runtime: java
api_version: 1

welcome_files:
  - index.jsp
  - index.html

handlers:
- url: /oblivion/*
  servlet: myprojectname.CronUpdater

其中myprojectname是項目的名稱。

但是當我訪問localhost:8888 / oblivion或localhost:8888 / oblivion /時

HTTP錯誤404

訪問/遺忘問題。 原因:

NOT_FOUND

可能是什么原因?

這是目錄的結構(被截斷)

pratik@pratik-desktop:~/workspace/myprojectname/war$ ls -LR
index.html  index.jsp  WEB-INF

./WEB-INF:
appengine-generated  app.yaml  cron.yaml  logging.properties
appengine-web.xml    classes   lib        web.xml

...

在appengine中,有兩種環境類型(截至目前):

  • 靈活的環境
  • 標准環境

您不能同時使用appengine-web.xmlapp.yaml

  • 靈活的環境使用app.yaml來配置appengine需要了解的所有內容
  • 標准環境使用appengine-web.xmllogging.properties

在這里,我假設您想在“ 靈活環境 ”模式下使用appengine。 通常, app.yaml位於main目錄內的appengine文件夾中。

通過Google Cloud Platform文檔 ,您應該具有:

myprojectname/
 [pom.xml]         (optional, only if you use maven)
 [build.gradle]    (optional, only if you use gradle)
 [index.yaml]      (optional, only if you use cloud datastore)
 [cron.yaml]       (optional, only if you use cron job)
 [dispatch.yaml]   (optional, only if you route to services)
 src/main/
   appengine/
     app.yaml
   java/
     com.example.mycode/
       MyCode.java
   webapp/
     [index.html]
     [index.jsp]
     WEB-INF/
       [web.xml]

最后一件事:應該在web.xml文件中定義處理程序。 app.yaml ,您應該只有:

handlers:
  - url: /.*
    script: this field is required, but ignored

在您的web.xml ,如下所示:

<servlet>
    <servlet>
      <servlet-name>CronUpdater</servlet-name>
      <servlet-path>myprojectname.CronUpdater</servlet-path>
    </servlet>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>CronUpdater</servlet-name>
    <url-pattern>/oblivion/*</url-pattern>
</servlet-mapping>

希望這可以幫助 !

無需使用myprojectname.CronUpdater,而是需要列出Servlet的完整包和類。 因此,如果CronUpdater位於軟件包中

com.mycompany.servlets

你需要把

servlet: com.mycompany.servlets.CronUpdater

在您的app.yaml中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM