UserInput из конвейера Jenkins не может прочитать или вывести параметр через java HTTP post call - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь сделать userInput с параметром и попытаться отобразить его в конвейере, однако я сталкиваюсь с java.lang.NullPointerException, когда пытаюсь заставить его работать.

Вот сценарий конвейера Jenkins:

def userInput
try {
    userInput = input(
    id: 'Verification', message: 'Waiting for verification',parameters: [
    [$class: 'TextParameterDefinition', description: 'action', name: 'action']
    ])
} catch(err) { // input false
    def user = err.getCauses()[0].getUser()
    echo 'Aborted by: [${user}]'
    currentBuild.result = 'ABORTED'
    error('Verification failure')
}

echo userInput

echo userInput.action

echo 'Verified'

На сайте Java:

URL url = new URL ("http://testing:1234/job/abc/job/abc-application/123/input/Verification/proceedEmpty?action=TestAction");

String authStr = authUser + ":" + authKey;
String encoding = DatatypeConverter.printBase64Binary(authStr.getBytes("utf-8"));

connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Basic " + encoding);
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");

OutputStream os = connection.getOutputStream();
//String data = "{\"parameter\": [{\"name\":\"action\", \"value\":\"TestUser\"}]}";
//os.write(data.toString().getBytes("UTF-8"));
os.close();

content = connection.getInputStream();
in = new InputStreamReader(content);
br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}

Я ожидал, что конвейер должен работать нормально, но со следующей ошибкой:

Input requested
Approved by admin
[Pipeline] echo
null
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.lang.NullPointerException: Cannot get property 'action' on null object

Я ожидал, что конвейер может быть продолжен, и результат должен быть:

Input requested
Approved by admin
[Pipeline] echo
TestAction
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
...
...