Я не уверен, что ManagementSystem
является сериализуемым, поэтому вы получаете эту ошибку.Есть как минимум два способа разобраться.Во-первых, вы не опубликовали то, что находится в вашем config/connect_config.yaml
, но я предполагаю, что он не использует такой вариант конфигурации для сериализатора:
hosts: [localhost]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}
Используя параметр serializeResultToString
(и предполагая, чтоСериализатор настроен в Gremlin Server в его конфигурации) вы говорите Gremlin Server принять любой полученный вами результат и вызвать toString()
до его возвращения.Таким образом, вы никогда не получите ошибок сериализации.
Но недостатком является то, что вы получаете только String
значений обратно.Вообще говоря, я думаю, что это нормально для большинства взаимодействий с Gremlin Console (особенно административных, таких как тот, который вы пытаетесь выполнить с помощью ManagementSystem
API. Так что, если вы хотите продолжить использовать свою текущую конфигурацию, которая пытается сериализовать фактическую "объекты ", вы просто должны быть уверены, что ваши скрипты возвращают только сериализуемые данные, поэтому вместо:
:> mg = graph.openManagement()
do
:> mg = graph.openManagement();[]
, который не возвращает mg
, а скореепустой список.