1

我刚刚在Windows上安装了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-02-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
4

4 回答 4

1

这是因为您试图在没有 Content-Type 的情况下调用 HTTP POST 方法。您可以检查将“Content-Type”标头设置为“application/json”吗

于 2017-02-26T16:46:44.850 回答
1

你应该发布你的整个程序。我能够成功地让它运行,如 ballerinalang.org 主页上所示。

于 2017-02-25T00:40:57.983 回答
0

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

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

你可以运行它

芭蕾舞演员运行服务路径/to/echo.bal

从 bin 目录中,或者也可以通过芭蕾舞演员作曲家做同样的事情。

于 2017-02-26T04:17:09.913 回答
0

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

内容类型:application/x-www-form-urlencoded

于 2017-03-03T09:54:21.543 回答