title: Not able to load Application Context in Spring Boot app
body: <p>I am working on a Spring Boot application wherein I am using that application to expose a SOAP webservice. I am using Apache CFX framework for SOAP impl in Spring boot app. I am using Annotation based approach.</p>
  
  <p>I am facing issue in setting the Application Context from the Spring Boot Configuration file in one of the Beans. Below is my code.</p>
  
  <pre><code>@SpringBootApplication
  @ComponentScan("com.test")
  public class Application {
  
      public static void main(String[] args) {
          SpringApplication.run(Application.class, args);
     }
  }
  </code></pre>
  
  <p>The configuration file is as below.</p>
  
  <pre><code>@Configuration
  public class WebServiceConfiguration {
  
  //All individual bean definitions should go here
  @Autowired
  ApplicationContext appContext;
  
  @Bean
  public ServletRegistrationBean cxfServlet() {
      return new ServletRegistrationBean(new CXFServlet(), "/soap-api/*");
  }
  
  @Bean(name = Bus.DEFAULT_BUS_ID)
  public SpringBus springBus() {
      return new SpringBus();
  }
  
  
  @Bean(name="IValidator")
  public IValidator getValidator(){
      return new Validator();
  }
  
  @Bean(name="SOAPprocessImpl")
  public IPSoap getService() {
      return new SOAPprocessImpl();
  }
  
  @Bean
  public Endpoint endpoint() {
      EndpointImpl endpoint = new EndpointImpl(springBus(), getService());
      endpoint.publish("/WS_1.0");
      endpoint.setWsdlLocation("process.wsdl");
      return endpoint;
  }
  </code></pre>
  
  <p>Now I have the bean SOAPprocessImpl implementation in which I need to get the Application Context so that I can get handle to the Validator bean. I have declared SOAPprocessImpl as a bean in the configuraton file. The code is as below</p>
  
  <pre><code>@javax.jws.WebService (endpointInterface="com.test.IPSoap")
  public class SOAPprocessImpl implements IPSoap, ApplicationContextAware {
  
  private static ApplicationContext context;
  
  public static ApplicationContext getApplicationContext() {
      return context;
  }
  
  @Override
  public void setApplicationContext(ApplicationContext ac)
          throws BeansException {
      context = ac;
  }
  
  private static final Logger logger = Logger.getLogger(SOAPprocessImpl.class.getName());
  
  private IValidator validator = (IValidator) context.getBean("IValidator"); // context is NULL here
  
  public IRResponse GetBalance(TSSearchParams SearchParams) {
  
      // Some processing logic
      }
  </code></pre>
  
  <p>}</p>
  
  <p>So the issue is that when I run the boot application by deploying to the embedded Tomcat then the Application Context is not getting set in the SOAPprocessImpl class even after implementing the ApplicationContextAware. I also tried Autowiring but that also is not working.</p>
  
  <p>Strangely I tried to see if I can get the ApplicationContext in the Configuration file where all the bean are defined. Here it is getting setting properly.</p>
  
  <p>Can anyone help me how to solve this issue. I am new to Spring Boot and may have missed some configutaion. Thanks in advance.</p>