如何在 IntelliJ 12 中创建一个有效的新 Google App Engine 项目?

2024-05-15

首先我要说的是,我之前没有 GAE 经验 - 我正在尝试让 GAE 在 IntelliJ 12 中工作,但遇到了问题,想知道是否有人可以看看我正在做的事情并告诉我是否有任何奇怪的地方这里。

Steps:

  1. 使用 JDK 1.7.0_51 在 IntelliJ 中创建 Java 项目。点击下一步。

  2. Select Web Application > Google App Engine在所需的技术页面上 与路径appengine-java-sdk-1.8.9。单击“完成”。

  3. 复制文件自appengine-java-sdk-1.8.9/demos/new_project_template/项目 目录

我现在有一个主目录结构,例如:



.
├── COPYING
├── build.xml
├── html
│   └── index.html
├── src
│   ├── META-INF
│   │   └── jdoconfig.xml
│   ├── WEB-INF
│   │   ├── appengine-web.xml
│   │   └── web.xml
│   ├── log4j.properties
│   ├── logging.properties
│   └── org
│       └── example
│           └── HelloAppEngineServlet.java
├── test.iml
└── web
    ├── WEB-INF
    │   ├── appengine-web.xml
    │   └── web.xml
    └── index.jsp
  

运行此命令将运行 Web 服务器,并在 Web 目录中运行 index.jsp。

围绕此的几个问题 - 是否应该有一个“web”和一个“html”目录?为什么有两个 WEB-INF 目录并且它们应该相同?每次更新时我都应该手动编辑它们吗?

如果我按照以下说明进行操作https://developers.google.com/appengine/docs/java/gettingstarted/creating https://developers.google.com/appengine/docs/java/gettingstarted/creating它提到了一个“war”文件夹 - 我承认我对“war”、“web”和“html”文件夹感到困惑 - 我想我在某个地方也看到了一个“www”文件夹。这些文件夹名称真的重要吗?

按照教程,我在“src”文件夹中创建一个留言簿文件夹并创建 java 文件。当我在 web.xml(两者)中输入信息时,我收到该行的错误

<servlet-name>guestbook</servlet-name>

“身份约束‘web-app-servlet-name-uniqueness’的字段与元素‘web-app’匹配,但该元素没有简单类型”

最重要的是 - guestbook.GuestbookServlet 无法解析。

必须有一种更简单的方法在 Intellij 中运行它 - 有人可以帮助我吗?


不幸的是,IntelliJ 并没有让这个过程变得简单。看起来他们希望你使用 Maven 来处理很多事情。但这使得尝试在 IntelliJ 上开始使用 GAE 的人们变得更加困难。

你的项目现在一团糟。您已将 IntelliJ 为您的 Web 模块添加的内容与演示项目中的一些文件结合起来。首先,从 IntelliJ 中删除文件并删除 Web 模块。

现在返回到您要使用的演示文件夹,它应该包含 COPYING、build.xml 以及 src 和 war 目录。将所有这些复制到您的项目中。然后进入项目结构->模块并导入模块。这将允许 IntelliJ 检测您的 Web 模块并避免创建重复的文件和目录。

您还需要在“设置”->“IDE 设置”->“应用程序服务器”下配置应用程序服务器。添加 Google App Engine 开发服务器并指定您的 SDK 目录。

然后返回到项目结构->模块->依赖项并添加库。选择您刚刚定义的应用程序服务器库。如果您的项目使用 GAE 的更高级功能,您将需要转到“项目结构”->“工件”并将库添加到您的工件中。

另外,对于 Artifact 上的设置,您需要创建一个指向您的战争目录的“爆炸战争”定义。

可能需要更多配置......但我现在想不出来。让我知道您接下来会遇到什么困难,我可以尽力提供帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 IntelliJ 12 中创建一个有效的新 Google App Engine 项目? 的相关文章

随机推荐

  • TreeView所有者在选择时绘制故障

    我正在尝试向标准 System Windows Forms TreeView 控件的元素添加更多图标 我的计划是只更改树视图控件的标签区域 但它显示出奇怪的行为 如果我单击一个节点来选择它 则按下鼠标按钮时 背景将使用突出显示颜色正确绘制
  • Powershell - 奇怪的 WSL 输出字符串编码

    今天我只是想检查我的 Windows 工作站上是否安装了特定的子系统 因此 我使用 Windows Subsystem for Linux WSL 并安装可从 Microsoft Store 获取的 Ubuntu 现在我试图找到一种方法来检
  • 交换 ms-sql 表

    我想以尽可能最好的方式交换到桌子 我有一个 IpToCountry 表 并根据导入的外部 CSV 文件每周创建一个新表 我发现进行切换的最快方法是执行以下操作 sp rename IpToCountry IpToCountryOld go
  • SELECT DISTINCT HAVING 计算唯一条件

    我已经搜索过这个问题的答案 但找不到如何根据条件获取这个不同的记录集 我有一个包含以下示例数据的表 Type Color Location Supplier Apple Green New York ABC Apple Green New
  • SaSS 循环使用

    我想创建类 将特定边距应用于我的块 例如 standard margin top margin top 10px standard margin bottom margin bottom 10px small margin top larg
  • iOS 4.3 上的cameraOverlayView 问题

    我使用带有cameraOverlayView的选择器控制器在相机视图中显示产品的图像 在应用到覆盖层之前 产品图像会调整大小 它在 iOS 4 2 上运行良好 但在 iOS 4 3 上产品图像显示为全尺寸 pickerController
  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • Java:直接从同一类的另一个实例访问私有字段

    我正在写一个equals Object obj 一个类的函数 我发现可以访问私有字段obj来自来电者 因此 不要使用 getter Odp other Odp obj if other getCollection contains ftw
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • 为 Azure Bot 服务设置插槽或多个环境

    我正在使用 Azure Bot 服务开发 Microsoft Bot 希望为 QA 开发 暂存设置不同的环境或插槽 就像我们在 azure 应用程序服务中所做的那样 在设置中 我没有找到 部署槽位 选项 但在设置下 每个设置都有 槽位设置
  • 从 url 导入 CSV Errno::ENAMETOOLONG: 文件名太长

    我正在尝试从 url 导入 CSV 文件 但我得到了Errno ENAMETOOLONG file name too long 我按如下方式处理该文件 require open uri url http de65 grepolis com
  • NodeJS:将 JSON 保存到 MongoDB

    我正在尝试从 API 获取 JSON 并将其存储到 MongoDB 数据库中 显然 这是行不通的 我的应用程序似乎停留在我尝试将数据保存到数据库的位置 请告知该怎么做 这是我的代码 var express require express v
  • Rails:format.js 或 format.json,或两者?

    可能很明显 但我仍然缺乏基本知识 那么在控制器内部 两者都可以使用 还是总是 Javascript 所以两者是相同的 json and js是两种不同类型的响应 它们在 Rails 中被定义为不同的 MIME 类型 Mime Type re
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • Java:正则表达式 - 如何获取第一个引用文本

    作为初学者regex我相信我要问的事情太简单了 但无论如何我都会问 希望它不会打扰你帮助我 可以说我有这样的文字 你好 cool1 这个词 cool2 我想获取第一个引用的文本 即 cool1 不带 我的模式应该是什么 当使用匹配器时 我如
  • 是否可以在 PHP 中使用 file_get_contents 来破坏 CSRF 令牌验证

    在每个会话的表单上使用令牌的 CSRF 预防方法是一种流行的方法 但是 我不明白这种令牌方式如何保护file get contentsPHP 可以获取跨域文件表单的内容 gt 它可以获取表单上的令牌并使用它 那么这种token方式是如何运作
  • Elasticsearch Nest 通配符查询(带空格)

    简洁版本 我想使用 Nest 编写一个弹性搜索查询来获取完整的索引项 ContentIndexables在我的例子中作为我的自定义类型 已被索引 该查询受 some string 术语查询的约束 即 String StartsWith 其中
  • 在 iOS 上使用 HEVC 编码器输出视频尺寸巨大

    我有一个项目 目前使用 H 264 编码器在 iOS 上录制视频 我想尝试在 iOS 11 中使用新的 HEVC 编码器来减小文件大小 但发现使用 HEVC 编码器会导致文件大小急剧膨胀 GitHub 上的一个项目显示了该问题 它使用 H
  • 在 Dojo 数据网格中添加一行

    努力寻找一些易于理解的代码 如何在 Dojo 数据网格 版本 1 4 2 中添加行并清除所有行 假设数据有 2 列 其中包含客户 ID 和地址 我在用 dojo data ItemFileWriteStore 存储值 但再次不太确定应该如何
  • 如何在 IntelliJ 12 中创建一个有效的新 Google App Engine 项目?

    首先我要说的是 我之前没有 GAE 经验 我正在尝试让 GAE 在 IntelliJ 12 中工作 但遇到了问题 想知道是否有人可以看看我正在做的事情并告诉我是否有任何奇怪的地方这里 Steps 使用 JDK 1 7 0 51 在 Inte