Я пытаюсь сделать 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
...