使用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.
仔細(xì)查看和跟蹤源碼,我發(fā)現(xiàn)這個(gè)問(wè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)使用了某個(gè)對(duì)象以后,就會(huì)將它的置為,當(dāng)再次裝載這個(gè)對(duì)象的時(shí)候就會(huì)強(qiáng)制拋出異常。這在通常情況下是沒(méi)有問(wèn)題的,但在我們前面提到的例子中就有問(wèn)題了。當(dāng)轉(zhuǎn)換員工值對(duì)象集合的時(shí)候,首先裝載和轉(zhuǎn)換了員工甲,他因?yàn)槭?#8220;研發(fā)部”所以也裝載了“研發(fā)部”這個(gè)部門(mén)值對(duì)象。然后開(kāi)始裝載和轉(zhuǎn)換員工乙。由于員工乙也是“研發(fā)部”,因此又開(kāi)始裝載“研發(fā)部”這個(gè)值對(duì)象,但突然發(fā)現(xiàn)這個(gè)值對(duì)象已經(jīng)裝載過(guò)了,因而就拋出了以上錯(cuò)誤。
如果我們希望整合、、到一起進(jìn)行項(xiàng)目開(kāi)發(fā),以上這個(gè)問(wèn)題是怎么也不能避免的,問(wèn)題是如何解決。非常遺憾的是,官方似乎還沒(méi)有要解決這個(gè)問(wèn)題的意思,我思索再三以后決定,還是“自己動(dòng)手豐衣足食”吧。解決的辦法其實(shí)很簡(jiǎn)單,就是把行這個(gè)強(qiáng)制拋出異常注釋掉,然后重新編譯。這樣修改以后就再也沒(méi)有出現(xiàn)以上問(wèn)題,同時(shí)至今也沒(méi)有發(fā)現(xiàn)其它問(wèn)題出現(xiàn)。這個(gè)問(wè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.
其實(shí)你并沒(méi)有在dwr在使用dwr
at com.htxx.demo.model.Department$$EnhancerByCGLIB$$f4b4f445.getHibernateLazyInitializer()
at org.directwebremoting.hibernate.H3BeanConverter.getClass(H3BeanConverter.java:139)
之所以說(shuō)這個(gè)異常比較離譜,是因?yàn)樗坪蹙蜎](méi)有dwr3.2.0.rc4這個(gè)還是hibernate3CharScanner; panic: 遇到這個(gè)問(wèn)題不要怕,其實(shí)解決的方法很簡(jiǎn)單,就是在springproperty name="hibernateProperties">
<props>
...
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactoryprop>
props>
property
六、在JDK1.4中運(yùn)行和部署DWR2和hibernate3出現(xiàn)的問(wèn)題
在DWR2.0同樣的問(wèn)題出現(xiàn)在hibernate3另外值得說(shuō)明的是,以上2