For some reason, the pointer of the object I'm trying to create using @Autowired is never created. I tried to consider a few examples, but nothing works! Here is my code:
Testing.java
package com.example.core.service.integration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; @ContextConfiguration(locations={"/app-context.xml"}) public class Testing { @Autowired private IntegrationRestService integrationRestService; public static void main(String args[]) { Testing t = new Testing(); t.checkNull(); } private void checkNull() { if(integrationRestService == null) System.err.println("FAIL..."); else System.out.println("SUCCESS!"); } }
IntegrationTestService.java
public interface IntegrationRestService { public FindSomething getFindSomethingResponse(String a, int b, int c); public FindSomethingElse getFindSomethingElseResponse(String urlToRead); }
IntegrationRestServiceImpl.java
@Service @Path("/test") public class IntegrationRestServiceImpl implements IntegrationRestService { public IntegrationRestServiceImpl() { super(); } ... }
application-context.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" default-autowire="constructor" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config/> <context:component-scan base-package="com.example.core"/> <bean id="IntegrationRestService" class="com.example.core.service.integration.IntegrationRestServiceImpl" /> <bean id="Testing" class="com.example.core.service.integration.Testing" /> </beans>
Any ideas what I'm doing wrong?
Answer:
Testing.java
@Service public class Testing { @Autowired private IntegrationRestService integrationRestService; public static void main(String args[]) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring/app-context.xml"); Testing testing = (Testing) context.getBean(Testing.class); testing.checkNull(); } private void checkNull() { if(integrationRestService == null) System.err.println("FAIL..."); else System.out.println("SUCCESS!"); } }
application-context.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" default-autowire="constructor" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config/> <context:component-scan base-package="com.example.core"/> <bean id="testing" class="com.example.core.service.integration.Testing"/> <bean id="integrationRestService" class="com.example.core.service.integration.IntegrationRestServiceImpl" /> </beans>
source share