0 0

使用dwr中报错,help me10

最近有个4级连动的下拉框。。我图省事正好最近开始学DWR  就尝试的用了下。。。结果4级连动下拉 是出来了。。但是偶尔会随即报下面的错 这个错不是每次都报 有时候报有时候不报。。。。我现在只能肯定时使用DWR时报的这个 序列化异常  但为什么会报这个呢。。。


以下时错误~~
<2008-8-18 下午02时47分13秒 CST> <Error> <HTTP> <BEA-101309> <[ServletContext(id=17984913,name=nsfw,context-path=/nsfw)] could not deserialize the context attribute "org.directwebremoting.ContainerList"
java.io.NotSerializableException: org.directwebremoting.impl.DefaultContainer
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at java.util.ArrayList.writeObject(ArrayList.java:531)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:809)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1296)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at weblogic.servlet.internal.AttributeWrapper.convertObjectToBytes(AttributeWrapper.java:188)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:158)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:99)
at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java:651)
at org.directwebremoting.impl.ContainerUtil.publishContainer(ContainerUtil.java:458)
at org.directwebremoting.servlet.DwrServlet.init(DwrServlet.java:80)
at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:1099)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:975)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:954)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:893)
at weblogic.servlet.internal.ServletStubImpl.reloadServlet(ServletStubImpl.java:804)
at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:762)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:602)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:406)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>

以下是  dwr.xml配置
    <allow>   
<create creator="new" javascript="ItemsBean">
      <param name="class" value="dmnsfw.dao.dwr.ItemsBean"/>
</create>
<create creator="new" javascript="SfzmspbSer"> <!-- 页面js中调用的名字 -->  
      <param name="class" value="dmnsfw.service.SfzmspbSer"/> <!-- 指定类的位置 -->
      <include method="queryV_SwjgInfo"/><!-- 容许JS中调用的方法 -->
      <include method="queryV_DsInfo"/>
</create>
</allow>
以下是业务层SfzmspbSer中的方法  具体实现已经封装了。。。(小弟用了工厂方法模式)
public Map queryV_DsInfo()
{
return sfzmspbdao.queryV_DsInfo();
}
public Map queryV_SwjgInfo(String dsdmAndswjgdm)
{
return sfzmspbdao.queryV_SwjgInfo(dsdmAndswjgdm);
}

以下是jsp页面中的数据
    function onStarti()
    {
     SfzmspbSer.queryV_DsInfo(createList1i);
    }
    function createList1i(data)
    { 
    DWRUtil.removeAllOptions("ssds");
    DWRUtil.addOptions("ssds",{0:'--请选择--'});
    DWRUtil.addOptions("ssds", data);  
    
    for(var i=0;i<document.forms[0].ssds.length;i++)
    {
  
   var ssdsvalue=document.forms[0].ssds.options[i].value.substring(0,document.forms[0].ssds.options[i].value.indexOf("|"));
   var dsdm='<%=request.getAttribute("ds_dm")%>';
         if(ssdsvalue==dsdm)
         {
             document.forms[0].ssds.options[i].selected=true; 
         }
    }    
   }  
</script>
<body onLoad="initDTTR();onStarti();">


因为第一个下拉我是 页面加载时调用的。。。

求教给为dwr达人了。。。
再次强调下  这个错误 并不是每次都报的 偶尔会报下 就是  10次报个2-3次  而且报 这个错并不影响程序运行。。。但是哗哗的错误 看的别扭想解决掉他。。。百度  google 了都找不到  求教各位了。
DWR 
2008年8月18日 14:56
目前还没有答案

相关推荐

Global site tag (gtag.js) - Google Analytics