Отладчик Ballerina запускает только один сервер в моем проекте Ballerina

Мой проект Ballerina содержит несколько серверов.

  1. HTTP-сервер (работает на порту 9095)
  2. Сервер GraphQL (работает на порту 9090)

HTTP-сервер действует как прокси-сервер для сервера GraphQL.

Когда я запускаю проект Ballerina в режиме отладки из VS Code, в режиме отладки запускается только HTTP-сервер (т. е. поддерживает точки останова отладчика). Хотя сервер GraphQL работает без проблем, он не поддерживает приостановку на точках останова отладчика.

Я хочу знать, как запустить сервер GraphQL в режиме отладки. Можно использовать режим отладки только для сервера GraphQL, а не для HTTP-сервера.

Обновлено: версия балерины: 2201.8.3.

Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
2
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При запуске проекта Ballerina в режиме отладки все точки входа программы (т. е. все основные функции и службы) инициализируются в режиме отладки. Следовательно, нет необходимости явно запускать службу GraphQL в режиме отладки.

Обратитесь к примеру ниже (упрощенная версия вашего проекта, включающая службы HTTP и GraphQL в одной программе) и выполните указанные шаги, чтобы убедиться, что служба GraphQL запущена и работает, а точки останова внутри службы достижимы. (Проверено с использованием последней актуальной версии Ballerina — 2201.9.2)

import ballerina/graphql;
import ballerina/http;

service / on new http:Listener(9095) {
    resource function get greeting() returns string {
        return "Hello, World!";
    }
}

@graphql:ServiceConfig {
    graphiql: {
        enabled: true
    }
}
service /graphql on new graphql:Listener(9090) {
    resource function get greeting() returns string {
        return "Hello, World!";
    }
}

Следующие шаги:

  1. Установите точки останова в функции ресурса GraphQL greeting и запустите проект в режиме отладки. (Об отладке см. документацию Ballerina)
  2. Перейдите к локально созданной конечной точке GraphiQL (http://localhost:9090/graphiql), как предложено в журналах программы.
  3. Запустите пример запроса через пользовательский интерфейс клиента GraphiQL, и вы увидите результат отладки внутри функции ресурса GraphQL.

В исходном вопросе не упоминалась версия Ballerina, которую я использовал. Я обновлю исходный вопрос с упоминанием версии: 2201.8.3. Я пробовал этот минимальный образец как с 8.3, так и с 9.2. Проблема воспроизводится на 8.3 и не воспроизводится на 9.2.

chathuranga siriwardhana 24.07.2024 10:56

Похоже, проблемное поведение было решено в более поздних версиях (2201.8.4+).

Dulaj Dilshan 27.07.2024 08:33

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