Развертывание войны в Jboss EAP 6 с использованием HTTP API - PullRequest
0 голосов
/ 03 сентября 2018

Я разрабатываю конвейер Jenkinsfile для развертывания приложения (war) в Jboss EAP, но получаю ошибку при попытке добавить и включить военный артефакт в jboss. Я много гуглил, но не нашел решения.

Я опубликую все шаги, определенные в моем Jenkinsfile, чтобы прояснить вопрос;

В строке, где указано «**», я пытаюсь выполнить операцию добавления и включить артефакт на сервере, но получаю сообщение об ошибке:

Развертывание Test-2.5.3-SNAPSHOT.war завершилось ошибкой: JBAS014807: Ресурс управления '[("deploy" => "Test-2.5.3-SNAPSHOT.war")]' не найден.

Понятия не имею, как мне это решить.

def deploy(deploymentFileName, oldWarFile, workspace) {
def hostname = 'myHost'
def managementPort = 'myPort'
def user = 'test'
def userPass = 'test'

def deploymentNameWoPath = determineFileName(deploymentFileName)
def oldDeployFile = oldWarFile+".war"
def relativePathDeployFile = workspace +"/"+ deploymentFileName

// undeploy old war if present
echo "Undeploying ${deploymentFileName} to ${hostname}:${managementPort} ..."
sh "curl --digest -D - http://${user}:${userPass}@${hostname}:${managementPort}/management --header \"Content-Type: application/json\" -d '{\"operation\":\"undeploy\", \"address\":[{\"server-group\":\"AppsVR\"},{\"deployment\":\"${oldDeployFile}\"}]}'"


// step 1: upload archive
echo "Uploading ${deploymentFileName} to ${hostname}:${managementPort} ..."
sh "curl -F \"file=@${relativePathDeployFile}\" --digest http://${user}:${userPass}@${hostname}:${managementPort}/management/add-content > result.txt"

// step 2: deploy the archive
// read result from step 1
def uploadResult = readFile 'result.txt'
def bytesValue = extractByteValue(uploadResult)

if (bytesValue != null) {
  echo "Deploying ${deploymentFileName} to ${hostname}:${managementPort} ..."
  sh "**curl -S -H \"Content-Type: application/json\" -d '{\"content\":[{\"hash\": {\"BYTES_VALUE\" : \"${bytesValue}\"}}, \"url\":{}], \"address\": [{\"server-group\":\"AppsVR\"}, {\"deployment\":\"${deploymentNameWoPath}\"}], \"operation\":\"add\", \"enabled\":\"true\"}' --digest http://${user}:${userPass}@${hostname}:${managementPort}/management** > result2.txt"
  def deployResult = readFile 'result2.txt'
  def failure = hasFailure(deployResult)

  if (failure != null) {
    //deploy old war
    sh "curl --digest -D - http://${user}:${userPass}@${hostname}:${managementPort}/management --header \"Content-Type: application/json\" -d '{\"operation\":\"deploy\", \"address\":[{\"server-group\":\"AppsVR\"},{\"deployment\":\"${oldDeployFile}\"}]}'"
    error "Deployment of ${deploymentNameWoPath} failed with error: ${failure}"
  }else{
    sh "curl --digest -D - http://${user}:${userPass}@${hostname}:${managementPort}/management --header \"Content-Type: application/json\" -d '{\"operation\":\"remove\", \"address\":[{\"server-group\":\"AppsVR\"},{\"deployment\":\"${oldDeployFile}\"}]}'" 
  }

} else {
  // fail build as deployment was not successfull
  error "Upload of ${deploymentFileName} failed"
}

}

...