2013-05-27 1 views
2

Я управляю проектом с Spring roo, и я использую спящий режим, когда я пытаюсь использовать этот контроллер. У меня есть это сообщение об исключении: невозможно инициализировать прокси - нет сеансаSpring roo не смог инициализировать прокси - no Session

org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:186) 
org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:545) 
org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:124) 
org.hibernate.collection.internal.PersistentSet.iterator(PersistentSet.java:180) 
com.macrosystem.rentacar.service.DefaultJournalService.getReservationsProfitPerYear(DefaultJournalService.java:142) 
com.macrosystem.rentacar.service.DefaultJournalService.getTotalLossAndProfitPerYear(DefaultJournalService.java:159) 
com.macrosystem.rentacar.service.DefaultJournalService.getTotalLossAndProfit(DefaultJournalService.java:173) 
com.macrosystem.rentacar.web.JournalController.lossAndPorfit(JournalController.java:44) 

Вот метод контроллера:

@RequestMapping("/lossandprofit.json") 
public @ResponseBody List<Map<String, Number>> lossAndPorfit(){ 
    return journalService.getTotalLossAndProfit() ; 
} 

и метод службы, которые вызывают исключение,

@Override 
@Transactional 
public BigDecimal getReservationsProfitPerYear(int year) { 
    BigDecimal reservationsprofit = new BigDecimal(0) ; 
    if(vehicle == null){ 
     log.warn("vehicule is null") ; 
    } 
    Set<Reservation> reservations = vehicle.getReservations() ; 
    Iterator<Reservation> iterator = reservations.iterator() ; 
    while(iterator.hasNext()){ 
     Reservation current = iterator.next() ; 
     GregorianCalendar calendar = new GregorianCalendar() ; 
     calendar.setTime(current.getStartDate()) ; 
     if (calendar.get(Calendar.YEAR) == year){ 
      reservationsprofit = reservationsprofit.add(current.getAmount()) ; 
     } 
    } 
    return reservationsprofit; 
} 

Почему у меня есть это исключение, даже если я аннотирование моего метода обслуживания с @Transactionnal, я посмотрел на файл applicationContext.xml и нашел эту строку

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

это режим = «AspectJ» часть, отменяет эффект этой аннотации?

ответ

1

получил ту же ошибку, и после прочтения этого stackoverflow response я добавил следующее к моей web.xml, который решал проблему:

<filter> 
    <filter-name>jpaOpenEntityManagerInViewFilter</filter-name> 
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>jpaOpenEntityManagerInViewFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

 Смежные вопросы

  • Нет связанных вопросов^_^