Пример работы балерины в эхосервисе
Я только что установил Ballerina версии 0.8.0 на Windows. После обучения я попробовал пример 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 ответа
Это потому, что вы пытаетесь вызвать метод HTTP POST без Content-Type. Можете ли вы проверить настройку заголовка "Content-Type" для "application/json"
Вы должны опубликовать всю свою программу. Я смог успешно запустить его, как показано на домашней странице ballerinalang.org.
Это образец эха, который работал для меня.
import ballerina.net.http;
@http:BasePath("/echo")
service echo {
@http:POST
resource echo(message m) {
http:convertToResponse(m);
reply m;
}
}
Вы можете запустить его по
путь обслуживания балерины / к /echo.bal
из каталога bin, или можете сделать то же самое с помощью ballerina composer.
Я мог бы воспроизвести эту проблему. Я использовал клиентское приложение Advanced REST в Chrome. Я мог бы устранить ошибку, установив заголовок Content-Type следующим образом.
Тип контента: application/x-www-form-urlencoded