无法部署到谷歌应用引擎

时间:2011-12-07 22:31:23

标签: java google-app-engine

我有一个小应用程序在localhost上进行测试时工作正常。

但是当我想将它部署到谷歌应用引擎服务器时,我遇到了错误:

Compiling module org.magnetik.semola.Org_magnetik
   Validating newly compiled units
      Ignored 1 unit with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
   Finding entry point classes
      [ERROR] Errors in 'file:/C:/Users/magnetik/git/semola-rdf/org.magnetik/src/org/magnetik/semola/client/RDFServlet.java'
         [ERROR] Line 13: No source code is available for type javax.servlet.http.HttpServlet; did you forget to inherit a required module?
         [ERROR] Line 16: No source code is available for type javax.servlet.http.HttpServletRequest; did you forget to inherit a required module?
         [ERROR] Line 16: No source code is available for type javax.servlet.http.HttpServletResponse; did you forget to inherit a required module?
         [ERROR] Line 25: No source code is available for type com.hp.hpl.jena.rdf.model.Model; did you forget to inherit a required module?
         [ERROR] Line 25: No source code is available for type com.hp.hpl.jena.rdf.model.ModelFactory; did you forget to inherit a required module?
         [ERROR] Line 37: No source code is available for type java.io.ByteArrayInputStream; did you forget to inherit a required module?
      [ERROR] Unable to find type 'org.magnetik.semola.client.RDFServlet'
         [ERROR] Hint: Previous compiler errors may have made this type unavailable
         [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

有用的文件(我认为)在这里:http://pastebin.com/zuELG18u

1 个答案:

答案 0 :(得分:4)

您的项目是否为客户端使用GWT?当您尝试执行特殊的GWT补充步骤时,您的部署失败。

我相信你的问题是你的RDFServlet类是GWT模块的一部分,这不是你想要的。

GAE的默认Eclipse项目预先配置为与GWT一起使用。该示例中的包结构如下:

client/    <--- GWT code (for client side, compiled to JavaScript)
shared/    <--- Code necessary on both the client and server
server/    <--- Server side code

当GWT将client / down编译为JavaScript时,它需要所有依赖项的完整源代码,并且有许多类不应该被引用。但是,您似乎在“client”包中有一个servlet(RDFServlet)。

您可能希望在项目中禁用GWT,或将RDFServlet移动到不属于GWT模块的程序包中。 (例如,如果您正在使用Eclipse示例项目,Servlets将放在“server”包下的某个位置。