title: Spring Boot Application Could not initialize class org.apache.logging.log4j.util.PropertiesUtil
body: <p>I am trying to implement the hello world web application using spring boot, gradle and tomcat by following <a href="https://spring.io/guides/gs/rest-service/" rel="nofollow noreferrer">"Building a RESTful Web Service"</a> but have been unable to run make it run so far.</p>
  
  <p>The code is pretty much the same as the one provided on the website, I have wasted hours debugging it thinking there was a bug in the provided code but I still can't figure out what's wrong.</p>
  
  <p>I am using Eclipse Java EE IDE for Web Developers, Version: Neon.3 Release (4.6.3), Build id: 20170314-1500</p>
  
  <p>Any idea what could be the issue?</p>
  
  <p>build.gradle</p>
  
  <pre><code>buildscript {
      repositories {
          mavenCentral()
      }
      dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE")
      }
  }
  
  apply plugin: 'java'
  apply plugin: 'eclipse'
  apply plugin: 'idea'
  apply plugin: 'org.springframework.boot'
  apply plugin: 'io.spring.dependency-management'
  
  bootJar {
      baseName = 'gs-rest-service'
      version =  '0.1.0'
  }
  
  repositories {
      mavenCentral()
  }
  
  sourceCompatibility = 1.8
  targetCompatibility = 1.8
  
  dependencies {
      compile("org.springframework.boot:spring-boot-starter-web")
      testCompile('org.springframework.boot:spring-boot-starter-test')
  }
  </code></pre>
  
  <p>Greeting.java</p>
  
  <pre><code>package App;
  
  public class Greeting {
  
      private final long id;
      private final String content;
  
      public Greeting(long id, String content) {
          this.id = id;
          this.content = content;
      }
  
      public long getId() {
          return id;
      }
  
      public String getContent() {
          return content;
      }
  }
  </code></pre>
  
  <p>GreetingController.java</p>
  
  <pre><code>package App;
  
  import java.util.concurrent.atomic.AtomicLong;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestParam;
  import org.springframework.web.bind.annotation.RestController;
  
  @RestController
  public class GreetingController {
  
      private static final String template = "Hello, %s!";
      private final AtomicLong counter = new AtomicLong();
  
      @RequestMapping("/greeting")
      public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
          return new Greeting(counter.incrementAndGet(),
                              String.format(template, name));
      }
  }
  </code></pre>
  
  <p>Application.java</p>
  
  <pre><code>package App;
  
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  
  @SpringBootApplication
  public class Application {
  
      public static void main(String[] args) {
          System.getProperties().put("server.port", 8486);
          SpringApplication.run(Application.class, args);
      }
  }
  </code></pre>
  
  <p>Stacktrace</p>
  
  <pre><code>Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.util.PropertiesUtil
      at org.apache.logging.log4j.status.StatusLogger.&lt;clinit&gt;(StatusLogger.java:71)
      at org.apache.logging.log4j.LogManager.&lt;clinit&gt;(LogManager.java:60)
      at org.apache.commons.logging.LogFactory$Log4jLog.&lt;clinit&gt;(LogFactory.java:199)
      at org.apache.commons.logging.LogFactory$Log4jDelegate.createLog(LogFactory.java:166)
      at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:109)
      at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:99)
      at org.springframework.boot.SpringApplication.&lt;clinit&gt;(SpringApplication.java:198)
      at App.Application.main(Application.java:9)
  </code></pre>