ScriptEvalutionError: For Input string "": при указании строки в качестве идентификатора - PullRequest
0 голосов
/ 11 июля 2019

Я установил док-контейнер для tinkerpop / gremlin-server на моем компьютере разработчика.

У меня есть приложение .NET Core, которое использует Gremlin.Net версии 3.4.1

Я подключаюсь к локальному докеру с помощью IGremlinClient и при прохождении следующего запроса для добавления вершины:

g.addV("Root").property(id,"56b7ddc6-7629-42d4-b748-bfbce0992f13")

Я тогда получаю ошибку:

ScriptEvaluationError: For input string: "56b7ddc6-7629-42d4-b748-bfbce0992f13"

Когда я запускаю запрос с помощью консоли gremlin, добавляется вершина:

gremlin> g.addV("Root").property(id,"56b7ddc6-7629-42d4-b748-bfbce0992f13")
==>v[56b7ddc6-7629-42d4-b748-bfbce0992f13]

Как я могу создать новую вершину со строкой в ​​качестве Id при запуске через IGremlinClient в моем приложении?

1 Ответ

2 голосов
/ 11 июля 2019

Поскольку вы используете контейнер Docker сервера Gremlin по умолчанию, вы получаете конфигурацию для вашего размещенного TinkerGraph:

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=LONG

IdManager установлен на LONG, поэтому он будет принимать только те входные значения, которые могут быть приведены к long. Вам следует изменить этот параметр на UUID, возможно, с учетом отправляемой вами строки или, возможно, ANY. Вы можете прочитать больше об этих опциях здесь .

В качестве примечания я бы согласился с тем, что сообщение об ошибке бесполезно. Обратите внимание, что он был улучшен для следующего выпуска 3.4.3 / 3.3.8.

...