Пример работы балерины в эхосервисе

Я только что установил 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

Другие вопросы по тегам