app.yaml url映射问题

时间:2011-06-06 05:20:42

标签: java google-app-engine yaml

的app.yaml

application: cloudymovie
version: 1
runtime: java

welcome_files:
  - test.jsp

handlers:
  - url: /test/*
  - servlet: com.test.TestLexerServlet
  - name: testlexer

test.jsp的

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
<form action="/test/" method="get">
    <input type="submit" value="Go">
</form>
</body>
</html>

然后当我按下按钮

HTTP ERROR 404

Problem accessing /test/. Reason:

    NOT_FOUND
Powered by Jetty://

我看看自动生成的web.xml 我找到了

<servlet-mapping>
    <servlet-name>com.test.TestLexerServlet</servlet-name>
    <url-pattern>null</url-pattern>
</servlet-mapping>

url-pattern不应为null

我是GAE的新手。 谢谢你的任何建议。

1 个答案:

答案 0 :(得分:0)

/test/*将匹配'/ test','/ test /','/ test //'等 - 可能不是你想要的。请改为/test/.*

但问题的根本原因是您的YAML标记无效。而不是:

handlers:
  - url: /test/*
  - servlet: com.test.TestLexerServlet
  - name: testlexer

它应该是这样的:

handlers:
  - url: /test/*
    servlet: com.test.TestLexerServlet
    name: testlexer