2013-03-26 3 views
0

Я видел несколько похожих вопросов, но ни один из предложенных решений не помог мне.hibernate4, spring 3: Нет сеанса для текущей темы

Detail, это просто Exemple:

Файл: MandatTypeBean.xml

<bean id="mandatTypeDAO" class="gestint.data.dao.impl.MandatTypeDAOImpl"> 
    <property name="sessionFactory" ref="sessionFactory"/> 
</bean> 

<bean id="ActionMandatType" class="gestint.data.action.MandatTypeAction"> 
    <property name="mandatTypeDAO" ref="mandatTypeDAO" /> 
</bean> 

Файл: HibernateSessionFactory.xml

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

    <property name="dataSource"> 
     <ref bean="DataSource"/> 
    </property> 

    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 


    <property name="mappingResources"> 
     <list> 
      <value>gestint/data/model/MandatType.hbm.xml</value> 
     </list> 
    </property> 
</bean> 

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
</bean> 

Файл: MandatTypeDAO.java

public class MandatTypeDAOImpl implements MandatTypeDAO { 
private SessionFactory sessionFactory; 

public SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 
public void setSessionFactory(SessionFactory sessionFactory) { 
    this.sessionFactory = sessionFactory; 
} 

public List<MandatType> listMandatType() {  
    sessionFactory.getCurrentSession().isConnected();  

    return null; 
} 

}

Файл: MandatTypeAction.java

public class MandatTypeAction extends ActionSupport{ 
    private static final long serialVersionUID = 1L; 

    private MandatTypeDAO mandatTypeDAO;  
    private List<MandatType> mandatList = new ArrayList<MandatType>(); 

    public void setMandatTypeDAO(MandatTypeDAO mandatTypeDAO) { 
     this.mandatTypeDAO = mandatTypeDAO; 
    } 

    public List<MandatType> getMandatTypeList() { 
     return mandatList; 
    } 

    public String listMandatType() {    
     mandatList = mandatTypeDAO.listMandatType(); 
     return SUCCESS; 
    } 

}

И моя ошибка ..

Когда я пытаюсь к доступом public List<MandatType> listMandatType() спростой Линге для тестирования:

sessionFactory.getCurrentSession().isConnected(); 

Я получаю эту ошибку:

17: 02: 28062 ОШИБКИ грузоотправитель: 38 - исключения произошло во время запроса обработки: Нет сеансы найдены для текущего потока org.hibernate .HibernateException: Нет сеансов найдено для текущего потока на org.springframework.orm.hibernate4.SpringSessionContext.currentSession (SpringSessionContext.java:97) на org.hibernate.internal.SessionFactoryImpl.getCurrentSession (SessionFactoryI mpl.java:980) на gestint.data.dao.impl.MandatTypeDAOImpl.listMandatType (MandatTypeDAOImpl.java:21) на gestint.data.action.MandatTypeAction.listMandatType (MandatTypeAction.java:26) на солнце. reflect.NativeMethodAccessorImpl.invoke0 (Родной метод) при sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect. Method.invoke (Method.java:597) в com.opensymphony.xwork2.DefaultActionInvocation.invokeAction (DefaultActionInvocation.java:446) at com.opensymphony.xwork2.DefaultActionInvoca tion.invokeActionOnly (DefaultActionInvocation.java:285) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:248) на org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept (DebuggingInterceptor.java: 256) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept (DefaultWorkflowInterceptor.Java: 176) на com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept (MethodFilterInterceptor.java:98) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony .xwork2.validator.ValidationInterceptor.doIntercept (ValidationInterceptor.java:265) на org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept (AnnotationValidationInterceptor.java:68) на com.opensymphony.xwork2.interceptor.MethodFilterInterceptor .intercept (MethodFilterInterceptor.java:98) по адресу com.opensymphony.xwork2.DefaultActionInvocation.invoke (Defau ltActionInvocation.java:242) на com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept (ConversionErrorInterceptor.java:138) в com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) в ком .opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept (ParametersInterceptor.java:238) на com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept (MethodFilterInterceptor.java:98) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) по адресу com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept (ParametersInterceptor.java:238) на com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept (MethodFilterInterceptor.java:98) в com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) в ком .opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept (StaticParametersInterceptor.java:191) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на org.apache.struts2.interceptor.MultiselectInterceptor.intercept (MultiselectInterceptor.java:73) по адресу com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInv ocation.java:242) на org.apache.struts2.interceptor.CheckboxInterceptor.intercept (CheckboxInterceptor.java:91) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) в орг .apache.struts2.interceptor.FileUploadInterceptor.intercept (FileUploadInterceptor.java:252) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept (ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) в com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept (ScopedModelDrivenInterceptor.java:141) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony.xwork2.interceptor .ChainingInterceptor.intercept (ChainingInterceptor.java:145) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept (PrepareInterceptor.java:171) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept (MethodFilterInterceptor.Java: 98) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept (I18nInterceptor.java:176) на com.opensymphony .xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на org.apache.struts2.interceptor.ServletConfigInterceptor.intercept (ServletConfigInterceptor.java:164) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java : 242) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept (AliasInterceptor.java:193) atcom.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept (ExceptionMappingInterceptor.java:187) на com.opensymphony.xwork2.DefaultActionInvocation.invoke (DefaultActionInvocation.java:242) на org.apache.struts2.impl.StrutsActionProxy.execute (StrutsActionProxy.java:54) на org.apache.struts2.dispatcher.Dispatcher.serviceAction (Dispatcher.java:544) на org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction (ExecuteOperations.java:77) по адресу org.apache.struts2.dispatc her.ng.filter.StrutsPrepareAndExecuteFilter.doFilter (StrutsPrepareAndExecuteFilter.java:91) на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:74) в weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.wrapRun (WebAppServletContext.java:3288) на weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run (WebAppServletContext.java:3254) на weblogic.security.acl.internal.AuthenticatedSubject.doAs (AuthenticatedSubject.java:321) в weblogic.security.service.SecurityManager.runAs (SecurityManager.java:120) по адресу weblogic.servlet.provider.WlsSubjectHandle.r ип (WlsSubjectHandle.java:57) на weblogic.servlet.internal.WebAppServletContext.doSecuredExecute (WebAppServletContext.java:2163) на weblogic.servlet.internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2089) на WebLogic .servlet.internal.WebAppServletContext.execute (WebAppServletContext.java:2074) на weblogic.servlet.internal.ServletRequestImpl.run (ServletRequestImpl.java:1512) в weblogic.servlet.provider.ContainerSupportProviderImpl $ WlsRequestExecutor.run (ContainerSupportProviderImpl .java: 254) at weblogic.work.ExecuteThread.execute (ExecuteThread.java:256) в weblogic.work.ExecuteThread .run (ExecuteThread.java:221)

Кто-нибудь может мне помочь?

ответ

0

Добавьте следующую строку в свой контекст приложения xml.

<tx:annotation-driven /> 

Затем украсить свой класс MandateTypeAction с аннотацией @Transactional и будет распространяться по умолчанию (по умолчанию типа распространения ОБЯЗАТЕЛЬНО) для названных методов.

Затем транзакция будет введена в MandateTypeAction.

HTH.

0

Почему вы вводите SessionFactory? Просто используйте сессию непосредственно:

@Repository 
public Mydao { 

    @PersistenceContext 
    private Session session; 

    @Transactional 
    public void persist(entity e) { 
     session.persist(e); 
    } 
} 

0

Спасибо за вашу поддержку! Он работает,

растворов:

добавить аннотацию управляемый Файл: HibernateSessionFactory.xml

<tx:annotation-driven transaction-manager="transactionManager"/> 

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
</bean> 

И я добавляю annotions к DAO Файл: MandatTypeDAO.java

@Transactional(readOnly = true) 
public interface MandatTypeDAO { 
    @Transactional(readOnly = true) 
    List<MandatType> listMandatType(); 
} 
Смежные вопросы