空间站

北极心空

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

使用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   
    1. org.

      仔细查看和跟踪源码,我发现这个问题出在AbstractOutboundVariable

      java 代码
      1. /* (non-Javadoc)  
      2.  * @see org.directwebremoting.OutboundVariable#getReference()  
      3.  */  
      4. public OutboundVariable getReferenceVariable()   
      5. {   
      6.     if (reference == null)   
      7.     {   
      8.         reference = new ReferenceOutboundVariable(getVariableName());   
      9.         if (forcedInlineStatus)   
      10.         {   
      11.             throw new IllegalStateException("Ignoring request to inline on reference for: " + this);   
      12.         }   
      13.         else  
      14.         {   
      15.             setInline(false);   
      16.         }   
      17.     }   
      18.     return reference;   
      19. }  

      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

    2.     at com.htxx.demo.model.Department$$EnhancerByCGLIB$$f4b4f445.getHibernateLazyInitializer()   
    3.     at org.directwebremoting.hibernate.H3BeanConverter.getClass(H3BeanConverter.java:139)  
      1. 之所以说这个异常比较离谱,是因为它似乎就没有dwr3.2.0.rc4这个还是hibernate3CharScanner; panic: 遇到这个问题不要怕,其实解决的方法很简单,就是在springproperty name="hibernateProperties">  

      2.     <props>  
      3.        ...   
      4.        <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactoryprop>  
      5.        props>  
      6. property  
        1. 六、在JDK1.4中运行和部署DWR2和hibernate3出现的问题

          DWR2.0同样的问题出现在hibernate3另外值得说明的是,以上2

          posted on 2007-10-15 09:49 芦苇 阅读(1364) 评论(0)  编辑  收藏 所属分类: JAVA

          只有注册用户登录后才能发表评论。


          网站导航: