使用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.
仔细查看和跟踪源码,我发现这个问题出在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;
- }
当dwr已经使用了某个对象以后,就会将它的置为,当再次装载这个对象的时候就会强制抛出异常。这在通常情况下是没有问题的,但在我们前面提到的例子中就有问题了。当转换员工值对象集合的时候,首先装载和转换了员工甲,他因为是“研发部”所以也装载了“研发部”这个部门值对象。然后开始装载和转换员工乙。由于员工乙也是“研发部”,因此又开始装载“研发部”这个值对象,但突然发现这个值对象已经装载过了,因而就抛出了以上错误。
如果我们希望整合、、到一起进行项目开发,以上这个问题是怎么也不能避免的,问题是如何解决。非常遗憾的是,官方似乎还没有要解决这个问题的意思,我思索再三以后决定,还是“自己动手丰衣足食”吧。解决的办法其实很简单,就是把行这个强制抛出异常注释掉,然后重新编译。这样修改以后就再也没有出现以上问题,同时至今也没有发现其它问题出现。这个问题我同样在《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出现的问题
在DWR2.0同样的问题出现在hibernate3另外值得说明的是,以上2