3
votes

I have the following error when I try to deploy my webapp from Jenkins, using AWSEB Deployment Plugin, to AWS elastic beantalk.

I specify a file path in the Root Object fieldset, so I have no values in Includes and Excludes fieldsets.

    AWSEB Deployment Plugin Version 0.3.15
    FATAL: Deployment Failure
    java.io.IOException: Deployment Failure
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.AWSEBDeploymentBuilder.perform(AWSEBDeploymentBuilder.java:188)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
        at hudson.model.Build$BuildExecution.build(Build.java:205)
        at hudson.model.Build$BuildExecution.doRun(Build.java:162)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
        at hudson.model.Run.execute(Run.java:1728)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        at hudson.model.ResourceController.execute(ResourceController.java:98)
        at hudson.model.Executor.run(Executor.java:404)
    Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Root Object doesn't exist
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at hudson.remoting.LocalChannel$2.get(LocalChannel.java:77)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.DeployerRunner.perform(DeployerRunner.java:66)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.AWSEBDeploymentBuilder.perform(AWSEBDeploymentBuilder.java:184)
        ... 9 more
    Caused by: java.lang.IllegalArgumentException: Root Object doesn't exist
        at org.apache.commons.lang.Validate.isTrue(Validate.java:136)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.cmd.DeployerCommand$ValidateParameters.perform(DeployerCommand.java:124)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.cmd.DeployerChain.perform(DeployerChain.java:54)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.SlaveDeployerCallable.call(SlaveDeployerCallable.java:42)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.SlaveDeployerCallable.call(SlaveDeployerCallable.java:27)
        at hudson.remoting.LocalChannel$1.call(LocalChannel.java:52)
        at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Any ideas about this error ? Root Object doesn't exist

1

1 Answers

2
votes

Root obect field expects you to give path to file or folder which you want to deploy to beanstalk.

Important thing here is that the path should be relative to your project's root directory.

Consider below example :

  • You have your project in directory "P" and inside this folder you have 2 sub directories A & B.
  • Suppose in your previous build step you have navigated to a sub directory, say A
  • The file you want to deploy is present inside A/target/XYZ.war
  • Then, entry for Root Object field would be " A/target/XYZ.war" (without quotes)

Note - Even though your present working directory was A , but still the Root object path has to be relative to your workspace (project's root directory)