title: How to fix BeanInstantiationException?
body: <p>I'm writing an application with Spring Boot and I have a problem, I tried searching for solutions on the internet but failed. Anyone can help me This is my code, thank you very much.</p>
  
  <p><strong>FTPController.java</strong> </p>
  
  <pre><code>@Controller
  @RequestMapping("api/files")
  public class FTPController {
  
      public FTPController(StorageService _storageService) {
          _storageService.init();
      }
  
  }
  </code></pre>
  
  <p><strong>StorageService.java</strong></p>
  
  <pre><code>public interface StorageService {
      void init();
  }
  </code></pre>
  
  <p><strong>StorageServiceImpl.java</strong></p>
  
  <pre><code>@Service
  public class StorageServiceImpl implements StorageService {
  
      private Path location; 
  
      public StorageServiceImpl() {
          location = Paths.get(PathUtil.getPathUpload());
      }
  
      @Override
      public void init() {
          try {
              Files.createDirectories(location);
          } catch (IOException e) {
              throw new FileException("Could not initialize storage", e);
          }
      }
  }
  </code></pre>
  
  <p><strong>PathUtil.java</strong> </p>
  
  <pre><code>public class PathUtil {
  
      //private static final String USER_DIR = System.getProperty("user.dir");
  
      private static final String USER_DIR = Constants.getUserDir();
  
      private static final String PATH_RESOURCES = USER_DIR + "/src/main/resources/";
  
      public static String getPathUpload() {
          return PATH_RESOURCES + "upload";
      }
  
  }
  </code></pre>
  
  <p><strong>Constants.java</strong></p>
  
  <pre><code>@Configuration
  @PropertySource({"classpath:config.properties"})
  public class Constants implements EnvironmentAware {
  
      private static Environment env;
  
      @Override
      public void setEnvironment(Environment environment) {
          Constants.env = environment;
      }
  
      @Bean
      public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
          return new PropertySourcesPlaceholderConfigurer();
      }
  
      public static String getUserDir() {
          return env.getProperty("USER_DIR");
      }
  
  }
  </code></pre>
  
  <p><strong>config.properties</strong></p>
  
  <pre><code>USER_DIR=user.dir
  </code></pre>
  
  <p><strong>Log</strong></p>
  
  <pre><code>13:53:48.146 [main] ERROR o.s.boot.SpringApplication - Application run failed
  org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'FTPController' defined in file [D:\Git\java\Boot\target\classes\com\spring\controller\FTPController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storageServiceImpl' defined in file [D:\Git\java\Boot\target\classes\com\spring\service\impl\StorageServiceImpl.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.spring.service.impl.StorageServiceImpl]: Constructor threw exception; nested exception is java.lang.ExceptionInInitializerError
      at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769)
      at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1325)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1171)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
      at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:849)
      at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
      at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
      at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
      at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
      at com.spring.BootApplication.main(BootApplication.java:14)
  Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storageServiceImpl' defined in file [D:\Git\java\Boot\target\classes\com\spring\service\impl\StorageServiceImpl.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.spring.service.impl.StorageServiceImpl]: Constructor threw exception; nested exception is java.lang.ExceptionInInitializerError
      at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:304)
      at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:171)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1325)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1171)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
      at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
      at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1247)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167)
      at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
      at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
      ... 19 common frames omitted
  Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.spring.service.impl.StorageServiceImpl]: Constructor threw exception; nested exception is java.lang.ExceptionInInitializerError
      at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:184)
      at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
      at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:300)
      ... 33 common frames omitted
  Caused by: java.lang.ExceptionInInitializerError: null
      at com.spring.service.impl.StorageServiceImpl.&lt;init&gt;(StorageServiceImpl.java:37)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      at java.lang.reflect.Constructor.newInstance(Unknown Source)
      at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172)
      ... 35 common frames omitted
  Caused by: java.lang.NullPointerException: null
      at com.spring.util.Constants.getUserDir(Constants.java:52)
      at com.spring.util.PathUtil.&lt;clinit&gt;(PathUtil.java:7)
      ... 41 common frames omitted
  </code></pre>
  
  <p>Sorry becaue my english is bad.</p>