由于运行状况检查超时,BlueMix 未启动

我正在使用 Go 尝试使用 IBM 的 BlueMix 创建一个简单的“hello world”-eque 脚本。我已经能够使用他们运行良好的 hello world 脚本,但是在编写我自己的脚本时它失败了。


我知道您需要为端口获取环境变量,这就是我所做的,但是有了这个,检查仍然无法启动服务。


package main


import (

    "io"

    "net/http"

    "log"

    "os"

    "fmt"

)


const (

    DEFAULT_PORT = "4001"

    DEFAULT_HOST = "localhost"

)


func HelloServer(w http.ResponseWriter, req *http.Request) {

    io.WriteString(w, "hello, world!\n")

}


func main() {

    http.HandleFunc("/hello", HelloServer)


    var port string

    if port = os.Getenv("VCAP_APP_PORT"); len(port) == 0 {

        port = DEFAULT_PORT

    }


    var host string

    if host = os.Getenv("VCAP_APP_HOST"); len(host) == 0 {

        host = DEFAULT_HOST

    }



    log.Printf("Using host %v+\n", host)

    log.Printf("Using port %v+\n", port)

    fmt.Println("######" + port)


    err := http.ListenAndServe(host+":"+port, nil)

    if err != nil {

        log.Printf("ListenAndServe: ", err)

    }

}

非常感谢有关为什么该程序失败的任何帮助。



慕姐8265434
浏览 150回答 1
1回答

MYYA

我编写的上述程序是正确的,并且可以正常运行。问题是 procfile 未正确设置。blueMix 在其示例 Go 程序中使用的 procfile 是web: gohelloworld.gohelloworld可以在 godeps/Godeps.json 文件中找到作为ImportPath值。因此,当生成您的 Godep 文件时,生成的值ImportPath是您应该放在 procfile 中的值。就我而言,它应该是:web: test.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go