Iai pessual, blz?
to montando a arquitetura de uma aplicação aki, porem estou com problemas nessa integracao na hora de persistir num vai nem com reza braba…
eu tenho:
[code]package br.com.ams.dao;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import br.com.ams.exception.DAOException;
@Transactional(readOnly=true, propagation=Propagation.REQUIRED)
public abstract class JpaDao<T, PK extends Serializable> implements GenericDao<T, PK> {
@PersistenceContext
protected EntityManager entityManager;
private Class<T> oClass;
@SuppressWarnings("unchecked")
public JpaDao(){
this.oClass = (Class<T>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Transactional(readOnly=false, propagation=Propagation.REQUIRED)
public void save(T model) throws DAOException{
this.getEntityManager().persist(model);
}
@Transactional(readOnly=false, propagation=Propagation.REQUIRED)
public void delete(T model) throws DAOException{
model = this.getEntityManager().merge(model);
this.getEntityManager().remove(model);
}
@Transactional(readOnly=false, propagation=Propagation.REQUIRED)
public void update(T model) throws DAOException{
this.getEntityManager().merge(model);
}
public T findById(PK id) throws DAOException{
return this.getEntityManager().find(oClass, id);
}
@SuppressWarnings("unchecked")
public List<T> listAll() throws DAOException{
return this.getEntityManager().createQuery("From " + oClass.getSimpleName()).getResultList();
}
@SuppressWarnings("unchecked")
public Class getObjectClass(){
return this.oClass;
}
public EntityManager getEntityManager() {
if(this.entityManager == null){
throw new IllegalStateException("EntityManager is null. Check That");
}
return entityManager;
}
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
}
[/code]
[code]import org.springframework.stereotype.Repository;
import br.com.ams.dao.JpaDao;
import br.com.ams.entity.Product;
@Repository
public class ProductDao extends JpaDao<Product, Integer>{
}[/code]
[code]@Controller
public class TesteHandler {
private Product model;
@Autowired
private ProductDao dao;
private static final Logger log = Logger.getLogger(TesteHandler.class);
public TesteHandler(){
this.model = new Product();
}
public void addPessoa(){
try {
model.setName("Ciro Santos JPA JPA");
this.dao.save(model);
System.out.println("Commited");
} catch (DAOException e) {
e.printStackTrace();
log.error(e);
}finally{
this.model = new Product();
}
[/code]
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
<managed-bean>
<managed-bean-name>testeHandler</managed-bean-name>
<managed-bean-class>br.com.ams.handler.TesteHandler</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
[code]<?xml version="1.0" encoding="UTF-8"?>
<context:annotation-config />
<bean id="springApplicationContext" class="br.com.ams.SpringApplication" />
<context:component-scan base-package="br.com.ams.dao">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<!-- <context:component-scan base-package="br.com.ams.*"/>-->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf" />
</bean>
<bean id="productDao" class="br.com.ams.dao.jpa.ProductDao" />
<bean id="log4jConfigurer"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass">
<value>org.springframework.util.Log4jConfigurer
</value>
</property>
<property name="targetMethod">
<value>initLogging</value>
</property>
<property name="arguments">
<list>
<value>classpath:log4j.xml</value>
</list>
</property>
</bean>
[/code]
porem da esse erro ao chamar o metodo de adicionar no meu mbean:
[code]javax.faces.FacesException: #{testeHandler.addPessoa}: java.lang.NullPointerException
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
javax.faces.component.UICommand.broadcast(UICommand.java:387)
org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
root cause
javax.faces.el.EvaluationException: java.lang.NullPointerException
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:387)
org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
root cause
java.lang.NullPointerException
br.com.ams.handler.TesteHandler.addPessoa(TesteHandler.java:31)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:131)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:387)
org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
[/code]
alguem ai poderia me dar uma forca…nao to sabendo o que esta errado…
vlw