title: Create an automation job to execute azure runbook using REST API
body: <p>In this link (<a href="https://stackoverflow.com/questions/31858486/create-azure-automation-account-using-rest-api-from-java">Create azure automation account using REST api from java</a>) I'd asked about how to create an automation account in order to create runbook. Now, that I've created an automation account and also a runbook which is published, I want to execute(start) the runbook. In order to do so I am following this link (<a href="https://msdn.microsoft.com/en-us/library/azure/mt163849.aspx" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/azure/mt163849.aspx</a>) but I am getting an error:</p>
  
  <pre><code>Server Error&amp;lt;/h1&amp;gt;&amp;lt;/div&amp;gt;&amp;#xD;&amp;lt;div id="content"&amp;gt;&amp;#xD; &amp;lt;div class="content-container"&amp;gt;&amp;lt;fieldset&amp;gt;&amp;#xD;  &amp;lt;h2&amp;gt;404 - File or directory not found.&amp;lt;/h2&amp;gt;&amp;#xD;  &amp;lt;h3&amp;gt;The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable
  </code></pre>
  
  <p>This is the java function:</p>
  
  <pre><code>    private static int processPutRequest(URL url, byte[] data, String contentType, String keyStore, String keyStorePassword) 
      throws UnrecoverableKeyException, KeyManagementException, KeyStoreException, NoSuchAlgorithmException, IOException {
         SSLSocketFactory sslFactory = getSSLSocketFactory(keyStore, keyStorePassword);
         HttpsURLConnection con = null;
         con = (HttpsURLConnection) url.openConnection();
         con.setSSLSocketFactory(sslFactory);
         con.setDoOutput(true);
         con.setRequestMethod("PUT");
         con.addRequestProperty("x-ms-version", "2013-08-01");
         con.setRequestProperty("Content-Length", String.valueOf(data.length));
         con.setRequestProperty("Content-Type", contentType);
  
         DataOutputStream requestStream = new DataOutputStream (con.getOutputStream());
         requestStream.write(data);
         requestStream.flush();
         requestStream.close();
  
         System.out.println(con.getResponseMessage());
  
         InputStream error = ((HttpURLConnection) con).getErrorStream();
  
         BufferedReader br = null;
         if (error == null) {
            InputStream inputstream = con.getInputStream();
            br = new BufferedReader(new InputStreamReader(inputstream));
         } else {
            br = new BufferedReader(new InputStreamReader(error));
         }
         String response = "";
         String nachricht;
         while ((nachricht = br.readLine()) != null){
            response += nachricht;
         }
         System.out.println(response);
         return con.getResponseCode();
     }
  
     public static void createJobId(String keyStorePath, String keyStorePassword, String subscriptionId)
  throws  UnrecoverableKeyException, KeyManagementException, KeyStoreException, NoSuchAlgorithmException, IOException
     {
         String url = String.format("https://management.core.windows.net/%s/cloudServices/OaaSCSI6EGAZU6F6QTCK5XRVT45FKJC6RC7IQIQW3OPR7SVLE4ZPD4IQQQ-East-US/resources/automation/~/automationAccounts/xdtauto/jobs/8c3e715-9b27?api-version=2014-12-08", subscriptionId);
         String requestBody = "{ \"properties\":{ \"runbook\":{ \"name\":\"createVM\" } } }";
         int createResponseCode = processPutRequest(new URL(url), requestBody.getBytes(), "application/json", keyStorePath, keyStorePassword);
         System.out.println("JOB created :: " + createResponseCode);
     }
  </code></pre>