![](/img/trans.png)
[英]Google AppEngine conflict using Maven to compile with app.yaml in Codenvy
[英]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.xml
和app.yaml
:
app.yaml
来配置appengine需要了解的所有内容 appengine-web.xml
和logging.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.