Thursday, April 16, 2015

Injection not working!
































































I need some help here, Injection not working!































































I am missing something (getting a null pointer for the entityManager)
































































The spring entry point, web.xml
































































































Java Code:






































































<web-app version="2.4" xmlns="http://ift.tt/qzwahU"
xmlns:xsi="http://ift.tt/ra1lAU"
xsi:schemaLocation="http://ift.tt/qzwahU http://ift.tt/16hRdKA">

<display-name>score progress</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>


<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>




































































The mayor spring.xml (after resolving I will split this file into two)































































Java Code:






































































<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://ift.tt/GArMu6"
xmlns:xsi="http://ift.tt/ra1lAU"
xmlns:aop="http://ift.tt/OpNdV1"
xmlns:context="http://ift.tt/GArMu7"
xmlns:tx="http://ift.tt/OGfeU2"
xmlns:jee="http://ift.tt/OpNaZ5"

xsi:schemaLocation="http://ift.tt/GArMu6
http://ift.tt/QEDs1e
http://ift.tt/OpNdV1
http://ift.tt/QEDs1g
http://ift.tt/GArMu7
http://ift.tt/QEDs1k
http://ift.tt/OGfeU2
http://ift.tt/1cQrvTl
http://ift.tt/OpNaZ5
http://ift.tt/1j5lSTg"
default-lazy-init="true" default-autowire="byName">

<context:component-scan base-package="com.canteratech.scoreprogress" />
<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager" />
<!--
<import resource="classpath:scoreprogress-spring-core.xml" />
<import resource="scoreprogress-spring/jpa.xml" />
-->

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/scoreprogress"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--
<property name="persistenceUnitName" value="scoreprogress-jpa"/>
-->
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="packagesToScan" value="com.canteratech.scoreprogress" />
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
</props>
</property>
</bean>

<tx:annotation-driven/>
<!--
<tx:annotation-driven transaction-manager="transactionManager" />
-->
<bean id="persistenceAnnotation" class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory" ref="entityManagerFactory"/>

</bean>
</beans>




































































and finally the entityManger injection (which turns out to be null)































































Java Code:






































































@Component(value = "userDao")
public class UserDaoImpl implements UserDao {

//@Autowired
@PersistenceContext(name="dataSource")
protected EntityManager entityManager;
….



































































































































No comments:

Post a Comment