hibernate - JPA its not Autowiring -



hibernate - JPA its not Autowiring -

im getting null pointer exception when seek autowire dao object ... allow me show code! (im using maven + hibernate + spring + jpa)

@repository public class daofriendimp implements daofriend{ private entitymanagerfactory emf = persistence.createentitymanagerfactory("persistence"); private entitymanager entitymanager = emf.createentitymanager(); @persistencecontext(unitname = "persistence") public void setentitymanager(entitymanager entitymanager) { this.entitymanager = entitymanager; } @override public boolean save(person person, person friend) { throw new unsupportedoperationexception("not supported yet."); } @override public list<person> getallfriendofpersonwithid(int id) { person person = entitymanager.find(person.class, id); homecoming person.getfriends(); } @override public boolean delete(person person, person friend) { throw new unsupportedoperationexception("not supported yet."); }

}

note: u can see im initializing entitymanager manually ... thats because if utilize persistencecontext null pointer exception ... perhaps because daofriendimp not gettint autowires propertly ? dont know...

now allow me show null pointer:

public class friendlistlogic { @autowired daofriendimp dao; public list<person> getentrys(int userid) { list<person> result = dao.getallfriendofpersonwithid(userid); //here homecoming result; } }

i dont know why not getting inyected! seems allright in configuration xml. add together rest of files (pom, persistence, applicationcontext , servlet.xml)

persistence.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="persistence" transaction-type="resource_local"> <provider>org.hibernate.ejb.hibernatepersistence</provider> <class>com.divux.onex.model.person</class> <class>com.divux.onex.model.circleofconnection</class> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect" /> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/onex" /> <property name="javax.persistence.jdbc.user" value="root" /> <property name="javax.persistence.jdbc.password" value="bterra" /> </properties> </persistence-unit> </persistence>

note: have jdbc user password driver , url here because had problems in datasource bean in applicationcontext ... didnt work if had info there (and yep ... dont know why!)

applicationcontext.xml

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <bean class="org.springframework.orm.jpa.support.persistenceannotationbeanpostprocessor" /> <context:annotation-config /> <bean class="org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor"/> <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource"> </bean> <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localcontainerentitymanagerfactorybean"> <property name="datasource" ref="datasource" /> <property name="persistenceunitname" value="persistence" /> <property name="jpavendoradapter"> <bean class="org.springframework.orm.jpa.vendor.hibernatejpavendoradapter"> <property name="database" value="mysql" /> <property name="showsql" value="false" /> <property name="generateddl" value="false" /> <property name="databaseplatform" value="org.hibernate.dialect.mysqldialect" /> </bean> </property> <property name="loadtimeweaver"> <bean class="org.springframework.instrument.classloading.instrumentationloadtimeweaver"></bean> </property> </bean> <bean id="transactionmanager" class="org.springframework.orm.jpa.jpatransactionmanager"> <property name="entitymanagerfactory" ref="entitymanagerfactory" /> </bean> <bean class="org.springframework.orm.jpa.support.persistenceannotationbeanpostprocessor"></bean> <tx:annotation-driven transaction-manager="transactionmanager" /> </beans>

servlet.xml

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <context:component-scan base-package="com.divux.onex.controller"></context:component-scan> <context:component-scan base-package="com.divux.onex.daoimp"></context:component-scan> <context:property-placeholder location="classpath*:resources/properties/*.properties"/> <bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix" value="/web-inf/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <mvc:annotation-driven/> <mvc:view-controller path="/" view-name="index"/> <mvc:resources mapping="/resources/**" location="/resources/"/> <import resource="applicationcontext.xml" /> </beans>

and pom.xml (just part of it)

<properties> <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <org.springframework.version>3.0.5.release</org.springframework.version> <aspectj.version>1.6.11</aspectj.version> <org.slf4j-version>1.5.8</org.slf4j-version> <hibernate.version>3.6.7.final</hibernate.version> <hibernate-search.version>4.0.0.final</hibernate-search.version> </properties> <!-- jpa hibernate persistence --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.16</version> </dependency> <!-- persistance --> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>${hibernate.version}</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-entitymanager</artifactid> <version>${hibernate.version}</version> <exclusions> <exclusion> <groupid>cglib</groupid> <artifactid>cglib</artifactid> </exclusion> <exclusion> <groupid>dom4j</groupid> <artifactid>dom4j</artifactid> </exclusion> </exclusions> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-ehcache</artifactid> <version>${hibernate.version}</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-search</artifactid> <version>${hibernate-search.version}</version> </dependency> <!-- <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-jmx</artifactid> <version>${hibernate-jmx.version}</version> </dependency> --> <dependency> <groupid>org.hibernate.javax.persistence</groupid> <artifactid>hibernate-jpa-2.0-api</artifactid> <version>1.0.0.final</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-jpamodelgen</artifactid> <version>1.1.1.final</version> <scope>provided</scope> <!-- need @ compile time --> </dependency> <dependency> <groupid>cglib</groupid> <artifactid>cglib-nodep</artifactid> <version>2.2</version> </dependency> <dependency> <groupid>javax.transaction</groupid> <artifactid>jta</artifactid> <version>1.1</version> </dependency> <!-- validation --> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> <version>4.1.0.final</version> <exclusions> <exclusion> <groupid>javax.xml.bind</groupid> <artifactid>jaxb-api</artifactid> </exclusion> <exclusion> <groupid>com.sun.xml.bind</groupid> <artifactid>jaxb-impl</artifactid> </exclusion> </exclusions> </dependency> <dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> <version>1.0.0.ga</version> </dependency> <!-- aspectj --> <dependency> <groupid>org.aspectj</groupid> <artifactid>aspectjrt</artifactid> <version>${aspectj.version}</version> </dependency> <dependency> <groupid>org.aspectj</groupid> <artifactid>aspectjweaver</artifactid> <version>${aspectj.version}</version> </dependency> </dependencies>

let me know if need more information! not add together error output cuz think unecessary ... if u needit allow me know!

thx all!

ah, need autowire using interface daofriend:

@autowired daofriend dao;

this because spring uses java proxy mechanizm wrap repository bean transaction-aware layer. approach interfaces can visible other beans.

also @autowired has "required" default behaviour. means friendlistlogic instances not managed spring: need annotate class @component (and create sure in component scan path) or create explicitly via string context.

hibernate spring jpa maven

Comments

Popular posts from this blog

How do I check if an insert was successful with MySQLdb in Python? -

delphi - blogger via idHTTP : error 400 bad request -

postgresql - ERROR: operator is not unique: unknown + unknown -