2012-07-19 66 views
0

我使用spring3與Hibernate3中並用primefaces JSF2 primefaces「selectOneMenu用於」組分AJAX請求..負載數據通過

我有一個問題,當我嘗試從DB加載數據,我得到空指針由於會話工廠是空的!

我認爲問題來自:

當我做了我的managedBean的viewscoped它給了我「不可序列異常」,所以我讓所有的類成員實現serialaizable但它也給了我不可序列異常,但對於這個類「org.springframework.orm.hibernate3.LocalSessionFactoryBean」,所以我讓會話工廠暫時。

後,我所做的會話工廠瞬態應用程序工作正常,但如果我做了Ajax請求的會話工廠爲空,所以我有空指針異常!

任何幫助將不勝感激..

感謝inadvance

+0

answer [here](http://stackoverflow.com/questions/11553335/cant-serialize-session-beans-warning-thrown)給你指針解決你的問題 – 2012-07-19 09:44:01

+0

謝謝你的回覆..但我怎麼打電話手動從dao的反序列化鉤子方法? – 2012-07-19 23:38:37

+0

他們鉤子方法,將兩個序列化過程中自動調用和反序列化你不需要調用它,只要確保deserilization掛鉤方法能夠設置例如適當的值。 – 2012-07-20 03:46:37

回答

0

沒有真正建立

您正在使用的彈簧,從而可以參照樹必須有一些

ManagedBean一個新的會話工廠 - >春服務 - >春庫

託管bean應該參考一個服務層(單身)。您應該將此引用標記爲瞬態並從應用程序上下文中的方法鉤子中獲取。

服務豆將始終可以從上下文和你沒有重新任何情況下,它只是你挑回來從上下文中。

至於休眠,它應該是在庫層和你既然保護系列化庫服務層將不會被序列化,因此沒有問題,因爲上面。

@ViewScoped 
public class ManagedBean implements Serializable { 

    @Autowired private transient Service service; 

} 

@Service 
public class ServiceImpl implements Service{ 

@Autowired private Repository repository; 

} 

@Repository 
public class RepositoryImpl extends HibernateDaoSupport implements Repository { 

    //here you can have hibernate session factory injected for dao support 
} 

希望這有助於!!!!!

+0

非常感謝我的朋友.. – 2012-07-22 12:33:12