Hi Everyone,
I am having some issue here with @Resource in a Click Page, it seems like
the bean is not searchable nor injectable by Spring context. I suspect that
maybe it is because I am using the AnnotationConfigWebApplicationContext
instead of plain Spring XML context.
The NullPointerException was thrown when the page get instantiated. I have
attached the full exception and below are my codes that related to the
initialization of web application context.
--web.xml
... [truncated for clarity]
<context-param>
<description>SpringFramework Context Annotation-based Config
ClassLoader</description>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<description>SpringFramework Context Annotation-based Config
Class
location</description>
<param-name>contextConfigLocation</param-name>
<param-value>in.hitme.web.context.AppConfigurationContext</param-value>
</context-param>
<listener>
<description>Built-in SpringFramework Listener</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
... [truncated for clarity]
... [truncated for clarity]
<servlet>
<servlet-name>springClickServlet</servlet-name>
<servlet-class>org.apache.click.extras.spring.SpringClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
<init-param>
<param-name>inject-page-beans</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springClickServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
... [truncated for clarity]
</web-app>
--Annotation Application Context
@Configuration
@ComponentScan(basePackages = { "in.hitme.web.page" }, scopeResolver =
PageScopeResolver.class)
@PropertySource(value = { "classpath:/config/application.properties" })
@Import(value = { WebConfigurationContext.class,
PersistenceConfigurationContext.class })
public class AppConfigurationContext {
@Bean
public AppConfig appConfig() {
return new AppConfigLoader();
}
... [truncated for clarity]
-- Home Page
@Component
public class HomePage extends BasePage {
private static final long serialVersionUID = -5999383948884446789L;
@Resource(name = "appConfig")
private AppConfig appConfig;
public String title = PageConstants.TITLE_PAGE_HOME;
public HomePage() {
log.debug("AppConfig instance : " + appConfig);
title = appConfig.get(PageConstants.TITLE_PAGE_HOME);
log.debug("\n\nTitle : " + title + "\n\n");
}
... [truncated for clarity]
For anyone who have ever been experienced the same issue, and able to
resolve it, kindly share the resolution. Thank you.
Regards,
Kristian Widjaja
http://click.1134972.n2.nabble.com/file/n7578133/click-exception.txt
click-exception.txt
--
View this message in context:
http://click.1134972.n2.nabble.com/Resource-not-working-when-using-Spring-3-x-AnnotationConfigWebApplicationContext-tp7578133.html
Sent from the click-user mailing list archive at Nabble.com.