【发布时间】:2014-11-12 14:23:30
【问题描述】:
我在 IntelliJ 中建立了一个新的 App Engine 项目并对其进行了 Gradlefied。在我尝试添加 HttpServlet 之前一切正常。我在 web.xml 文件中添加了一个简单的测试类和关联的映射。当我去运行开发服务器时,我在启动时遇到了几个异常,然后是 503 错误。
我猜它找不到我的班级是根本原因,但我不明白为什么它找不到我的班级。这与 javax.servlet.UnavailableException 有关吗?错误按以下顺序出现:
WARNING: EXCEPTION
java.lang.ClassNotFoundException:main.webapp.Test2
....
SEVERE: javax.servlet.ServletContext log: unavailable
javax.servlet.UnavailableException: main.webapp.Test2
....
WARNING: failed Test: java.lang.NullPointerException
Nov 12, 2014 2:07:56 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Failed startup of context com.google.appengine.tools.development.DevAppEngineWebAppContext@34c8daa0{/,D:\Projects\WordBuzzIntegrated\build\classes\artifacts\app_engine_war_exploded}
java.lang.NullPointerException
测试类
package main.webapp;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Test2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("BOO!");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>main.webapp.Test2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
根 build.gradle
....
project(":app-engine") {
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
}
....
模块 build.gradle
appengine {
downloadSdk = true
httpPort = 8080
appcfg {
email = 'xxxxxxxx@xxxx.xxx'
passIn = true
logs {
severity = 1
outputFile = file('mylogs.txt')
}
app {
id = 'wordbuzzweb'
}
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
dependencies {
appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.15'
providedCompile 'javax.servlet:servlet-api:2.5'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
}
【问题讨论】:
标签: java google-app-engine intellij-idea gradle build.gradle