当前位置: 首页 > 面试题库 >

有人可以解释为什么以下gocode不能通过goapp服务失败

董高逸
2023-03-14
问题内容
package helloworld

import (
  "fmt"
  "net/http"

  "appengine"
  "appengine/user"
)

func init() {
  fmt.Print("hello")
  http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
  c := appengine.NewContext(r)
  u := user.Current(c)
  if u == nil {
    url, err := user.LoginURL(c, r.URL.String())
    if err != nil {
      http.Error(w, err.Error(), http.StatusInternalServerError)
      return
    }
    w.Header().Set("Location", url)
    w.WriteHeader(http.StatusFound)
    return
  }
  fmt.Fprintf(w, "Hello, %v!", u)
}

goapp serve输出中引发以下错误

(saucy)adam@localhost:~/projects/ringed-land-605/default$ goapp serve -host 0.0.0.0 .
INFO     2014-06-08 23:57:47,862 devappserver2.py:716] Skipping SDK update check.
INFO     2014-06-08 23:57:47,877 api_server.py:171] Starting API server at: http://localhost:48026
INFO     2014-06-08 23:57:47,923 dispatcher.py:182] Starting module "default" running at: http://0.0.0.0:8080
INFO     2014-06-08 23:57:47,925 admin_server.py:117] Starting admin server at: http://localhost:8000
ERROR    2014-06-08 23:57:48,759 http_runtime.py:262] bad runtime process port ['hello46591\n']

删除fmt.Print()修复问题。我的问题是为什么会这样?


问题答案:

开始运行时过程时,Go Development
Server
(在App
Engine Go SDK中)正在读取helloworld的中找到的单行响应init

这会修改中的_start_process_flavor标志http_runtime.py;因此,HTTP运行时会尝试读取行以指示要侦听哪个端口。

阅读启动过程文件中预期的单行响应。[…] START_PROCESS_FILE版本使用运行时实例的文件来报告其正在侦听的端口。

在这种情况下,hello不是要监听的有效端口。

尝试改用Go的log软件包:

log.Print("hello")


 类似资料:
  • 问题内容: 情况1:这不会引起?。谁能告诉我为什么这不会导致ConcurrentModificationException。 情况2:这是由于我尝试访问AsyncThread中的线程不安全的人员列表。我可以使我的“人员列表”实现是线程安全的,并且应该可以运行。 谁能解释我到底发生了什么。我无法理解这是如何解决问题的。 案例2是否将实现从更改为推荐? 添加例外: 05-28 20:34:21.073

  • 它通常会打印“z”。为什么它不返回分段错误?因为我试图访问一个不应该存在的索引,因为strB的大小(索引数量)等于tam_strA,它等于3。 另外,做有什么不同/问题吗?

  • 问题内容: 我是Go编程语言的新手,每个教程都从将GOPATH设置为当前项目文件夹开始。 我想念什么吗?程序员真的应该在进入新的Go项目文件夹时手动设置GOPATH 吗?我已经阅读了一些有关GOPATH的常见问题解答条目,但仍然无法解决。 那为什么GOROOT存在呢?目的是什么? 是否有任何自动工具来检测当前目录是否是Go项目的根文件夹(例如通过某个隐藏文件)并自动将GOPATH更改为该目录? 谢

  • 问题内容: 为什么在Python解释器中会发生以下情况? 为什么不呢? 问题答案: 那是因为不能以二进制浮点表示形式精确表示。如果你试试 Python会做出响应,因为它只能打印出一定的精度,但是已经存在一个小的舍入错误。也会发生同样的情况,但是当您发出 然后四舍五入误差并累积。另请注意:

  • 问题示例的图像 在这两个节点上都调用 .intersects 并返回 true。我使用getBoundsInParent()来表示两者。有人可以帮我解决这个问题吗?我觉得这与getBoundsInParent()没有返回圆圈的准确边界有关,而是idk。谢谢

  • 问题内容: 我只是在android上开始,而我的java很生锈。我不记得曾经见过像这样嵌套在另一个函数中的函数。有人可以向我确切解释final的作用,并解释为什么您要在另一个函数中嵌套这样的功能吗? 问题答案: 这是一个匿名类。实际发生的情况是正在使用重写的函数创建 的子类。 关于匿名类的最优雅的事情之一是,它们使您可以在需要的地方准确定义单发类。此外,匿名类具有简洁的语法,可减少代码中的混乱情况