Ballerina echoservice 示例抛出错误

Ballerina echoservice example throws an error

我刚刚在 Windows[=46= 上安装了 Ballerina 版本 0.8.0 ].按照教程,我尝试了 echoservice 示例。 从 \ballerina-0.8.0\samples\echoService 文件夹启动命令

ballerina run service echoService.bal

我收到了这个回复

error in ballerina program: value
     at echo(echoService.bal:6)
     at echo(echoService.bal:3)

第 6 行是

resource echo (message m) {

示例 helloworldservice 正常运行。

怎么了?

提前致谢

詹妮

2017 年 2 月 26 日更新: 这是我从 ballerina-0.8.0/samples/echoService 文件夹中执行的代码。我是 运行 它来自 Git Bash,但它与命令提示符相同。

import ballerina.net.http;
@http:BasePath ("/echo")
service echo {

    @http:POST
    resource echo (message m) {
        http:convertToResponse(m);
        reply m;

    }

}

我启动这个命令

../../bin/ballerina.bat run service echoService.bal

控制台显示相同的错误。

我正在使用 Fiddler 调用服务...

POST http://localhost:9090/echo HTTP/1.1
User-Agent: Fiddler
Host: localhost:9090
Content-Length: 3

sss

...我收到此回复

HTTP/1.1 500 Internal Server Error
Connection: keep-alive
Content-Length: 33
Content-Type: text/plain

error in ballerina program: value

您应该 post 您的整个程序。如 ballerinalang.org 主页所示,我能够成功将其发送到 运行。

这是对我有用的回声样本。

import ballerina.net.http;
@http:BasePath("/echo")
service echo {
    @http:POST
    resource echo(message m) {
        http:convertToResponse(m);
        reply m;    
    }
}

你可以 运行 通过

ballerina run service path/to/echo.bal

从 bin 目录,或者也可以通过 ballerina composer 执行相同的操作。

这是因为您试图在没有 Content-Type 的情况下调用 HTTP POST 方法。你能检查设置 "Content-Type" header 到 "application/json"

我可以重现这个问题。我在 Chrome 中使用了 Advanced REST 客户端应用程序。当我按如下方式设置 Content-Type header 时,我可以解决错误。

Content-Type: application/x-www-form-urlencoded