Streamsets Ошибка сценария Javascript при загрузке JQuery

Я пытаюсь загрузить JQuery в Streamsets Javascript Scripting Origin для запроса остальных API и получаю сообщение об ошибке. Код выглядит так, как показано ниже, и разрешение на загрузку Java было указано в /etc/sdc/sdc-security.policy. У кого-нибудь есть пример javascript-кода Streamsets для запроса остальных API?

load('file:///opt/streamsets-datacollector/resources/jquery-3.5.1.min.js');

var settings = {
  "url": "https://example.com/abc?parm1=123&parm2=456",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Accept": "application/vnd.mds.provider+json;version=0.3",
    "Authorization": "Bearer some-token-xxxxx"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Ниже приведена ошибка стека:

com.streamsets.pipeline.api.StageException: SCRIPTING_10 - Script error in user script: javax.script.ScriptException: TypeError: Cannot read property "createElement" from undefined in file:/opt/streamsets-datacollector/resources/jquery-3.5.1.min.js at line number 2
    at com.streamsets.pipeline.stage.origin.scripting.AbstractScriptingSource.produce(AbstractScriptingSource.java:137)
    at com.streamsets.pipeline.api.base.configurablestage.DPushSource.produce(DPushSource.java:44)
    at com.streamsets.datacollector.runner.StageRuntime.lambda$execute$1(StageRuntime.java:270)
    at com.streamsets.datacollector.runner.StageRuntime.execute(StageRuntime.java:244)
    at com.streamsets.datacollector.runner.StageRuntime.execute(StageRuntime.java:279)
    at com.streamsets.datacollector.runner.SourcePipe.process(SourcePipe.java:79)
    at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunner.runPushSource(ProductionPipelineRunner.java:426)
    at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunner.run(ProductionPipelineRunner.java:388)
    at com.streamsets.datacollector.runner.Pipeline.run(Pipeline.java:533)



person ebeb    schedule 24.08.2020    source источник


Ответы (1)


JQuery обычно используется для обхода HTML-документа. Вам следует изучить использование происхождения HTTP-клиента вместо этого для вызова конечной точки REST API.

Привет, Дэш

person Dash    schedule 04.12.2020
comment
Имеет смысл. Искал программный способ, такой как javascript или jython, для вызова rest API для обработки некоторых сложных требований аутентификации/пейджинга, которые сложны для происхождения HTTP-клиента. Оценщик Jython работал, но Javascript не смог найти ни одного хорошего примера. Спасибо! - person ebeb; 04.12.2020