使用DWR我在《DWR幫助文檔-dwr.xml文件的配置for: Object:s0:{departmentId=Simple:"001", departmentName=Simple:""u4EBA"u529B"u8D44"u6E90"u90E8", employees=Simple:null}. See the logs for more details.
at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:200)
at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:192)
...
Caused by: java.lang.IllegalStateException: Ignoring request to inline on reference for: Object:s0:{departmentId=Simple:"001", departmentName=Simple:""u4EBA"u529B"u8D44"u6E90"u90E8", employees=Simple:null}
at org.directwebremoting.dwrp.AbstractOutboundVariable.getReferenceVariable(AbstractOutboundVariable.java:148)
at org.directwebremoting.dwrp.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:181)
at org.directwebremoting.convert.BasicObjectConverter.convertOutbound(BasicObjectConverter.java:189)
... 28 more
org.
仔細查看和跟蹤源碼,我發(fā)現(xiàn)這個問題出在AbstractOutboundVariable
java 代碼
- /* (non-Javadoc)
- * @see org.directwebremoting.OutboundVariable#getReference()
- */
- public OutboundVariable getReferenceVariable()
- {
- if (reference == null)
- {
- reference = new ReferenceOutboundVariable(getVariableName());
- if (forcedInlineStatus)
- {
- throw new IllegalStateException("Ignoring request to inline on reference for: " + this);
- }
- else
- {
- setInline(false);
- }
- }
- return reference;
- }
當(dāng)dwr已經(jīng)使用了某個對象以后,就會將它的置為,當(dāng)再次裝載這個對象的時候就會強制拋出異常。這在通常情況下是沒有問題的,但在我們前面提到的例子中就有問題了。當(dāng)轉(zhuǎn)換員工值對象集合的時候,首先裝載和轉(zhuǎn)換了員工甲,他因為是“研發(fā)部”所以也裝載了“研發(fā)部”這個部門值對象。然后開始裝載和轉(zhuǎn)換員工乙。由于員工乙也是“研發(fā)部”,因此又開始裝載“研發(fā)部”這個值對象,但突然發(fā)現(xiàn)這個值對象已經(jīng)裝載過了,因而就拋出了以上錯誤。
如果我們希望整合、、到一起進行項目開發(fā),以上這個問題是怎么也不能避免的,問題是如何解決。非常遺憾的是,官方似乎還沒有要解決這個問題的意思,我思索再三以后決定,還是“自己動手豐衣足食”吧。解決的辦法其實很簡單,就是把行這個強制拋出異常注釋掉,然后重新編譯。這樣修改以后就再也沒有出現(xiàn)以上問題,同時至今也沒有發(fā)現(xiàn)其它問題出現(xiàn)。這個問題我同樣在《DWR幫助文檔-dwr.xml文件的配置DWR幫助文檔-dwr.xml文件的配置在使用dwrMissing java bean property to match javascript property:[屬性名如果將log4jYou may be missing the correct setter: setXXX()
The property may be excluded using include or exclude rules.
其實你并沒有在dwr在使用dwr
at com.htxx.demo.model.Department$$EnhancerByCGLIB$$f4b4f445.getHibernateLazyInitializer()
at org.directwebremoting.hibernate.H3BeanConverter.getClass(H3BeanConverter.java:139)
之所以說這個異常比較離譜,是因為它似乎就沒有dwr3.2.0.rc4這個還是hibernate3CharScanner; panic: 遇到這個問題不要怕,其實解決的方法很簡單,就是在springproperty name="hibernateProperties">
<props>
...
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactoryprop>
props>
property
六、在JDK1.4中運行和部署DWR2和hibernate3出現(xiàn)的問題
在DWR2.0同樣的問題出現(xiàn)在hibernate3另外值得說明的是,以上2