自從換工作之后就沒(méi)有研究過(guò)DWR了。下載了最新的DWR2.0M2版本。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 >
啟動(dòng)服務(wù),抱錯(cuò)了。
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里面搜索了一下,還有答案,原來(lái)DWR2.0 加入了JDK5的注釋(annotations).DwrServlet初始化的時(shí)候會(huì)去檢查注釋的類,找不到就抱錯(cuò)了。如果你不用annotations也可以忽略掉這個(gè)錯(cuò)誤。不過(guò)看起來(lái)總是不爽。有人提出了方案。這樣就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 >
|