DWR2.0的DefaultContainer can't find a classes异常的解决方案

来源:互联网 发布:手机淘宝怎么免费开店 编辑:程序博客网 时间:2024/05/21 22:39
2.0加了很多东西,也有不少变化的地方。最容易看到的变化就是包名的变化了,由 uk.ltd.getahead 变成了 org.directwebremoting
        换上了新的配置
     < servlet >
        
< servlet-name > dwr-invoker </ servlet-name >
        
< servlet-class > org.directwebremoting.servlet.DwrServlet </ servlet-class >
        
< init-param >
          
< param-name > debug </ param-name >
          
< param-value > true </ param-value >
        
</ init-param >
        
< load-on-startup > 1 </ load-on-startup >
    
</ servlet >

启动服务,抱错了。

java.lang.IllegalArgumentException: DefaultContainer can't find a classes
       at org.directwebremoting.impl.DefaultContainer.getBean(DefaultContainer.java:216)
       at org.directwebremoting.annotations.AnnotationsConfigurator.configure(AnnotationsConfigurator.java:50)
       at org.directwebremoting.servlet.DwrServlet.init(DwrServlet.java:121)

      在DWR的Maillist里面搜索了一下,还有答案,原来DWR2.0 加入了JDK5的注释(annotations).DwrServlet初始化的时候会去检查注释的类,找不到就抱错了。如果你不用annotations也可以忽略掉这个错误。不过看起来总是不爽。有人提出了方案。这样就ok了。

     < servlet >
        
< servlet-name > dwr-invoker </ servlet-name >
        
< servlet-class > org.directwebremoting.servlet.DwrServlet </ servlet-class >
        
< init-param >
          
< param-name > debug </ param-name >
          
< param-value > true </ param-value >
        
</ init-param >
        
< init-param >
           
< param-name > classes </ param-name >
           
< param-value > java.lang.Object </ param-value >
        
</ init-param >
        
< load-on-startup > 100 </ load-on-startup >
    
</ servlet >