web.xml配置:
     <servlet>
        <servlet-name>dwr-servlet</servlet-name>
        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr-servlet</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
-------------------------------------------------------------------------
dwr.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
    <allow>
           <!--create creator="spring" javascript="UserManager">
            <param name="beanName" value="userManager"/>
            <include method="getUsers"/>
        </create>
        <convert converter="bean" match="org.appfuse.model.User"/-->
        <create  creator="new" javascript="check">
<param name="class" value="com.cmn.webapp.action.user.TestAjax"></param>
</create>    </allow>
</dwr>
-------------------------------------------------------------------------
TestAjax.java
ublic class TestAjax {
    private static Log log = LogFactory.getLog(ConvertUtil.class);    public String getUserName(String userName) {
        if ("a".equals(userName)) {
            //
            return "yes";
        } else {
            return "no";
        }
       //
    }
 }
-------------------------------------------------------------------------
jsp
function checkUser()
{
    alert("OK");
    check.getUserName($("#username"),  function(data){
         alert("222222");
                                if("yes"==data){
                                    $("#username").after('yes');
                                    errors = 'errors';
                                    return false;
                                }else{
                                    $("#username").after('no');
                                }
                            });}
用户名:<input style="width:160px"  type="text" class="value" id="username" name="user.username" onblur="checkUser()" value="" >------------------------------------------------------------------------------------------------------------------------------------
错误:
[cmnweb] ERROR [http-8080-Processor13] [dwr-servlet].invoke(145) | Allocate exception for servlet dwr-servlet
org.xml.sax.SAXException: Failed to resolve: arg0=-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN arg1=ht
tp://www.getahead.ltd.uk/dwr/dwr20.dtd
        at uk.ltd.getahead.dwr.impl.DTDEntityResolver.resolveEntity(DTDEntityResolver.java:59)
        at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)
        at uk.ltd.getahead.dwr.impl.DefaultConfiguration.addConfig(DefaultConfiguration.java:64)
        at uk.ltd.getahead.dwr.AbstractDWRServlet.readFile(AbstractDWRServlet.java:188)
        at uk.ltd.getahead.dwr.DWRServlet.configure(DWRServlet.java:117)
        at uk.ltd.getahead.dwr.AbstractDWRServlet.init(AbstractDWRServlet.java:119)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
        at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:791)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:127)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BasePro
tocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
    <dwr>
        <allow>
              <!--create creator="spring" javascript="UserManager">
                <param name="beanName" value="userManager"/>
                <include method="getUsers"/>
            </create>
            <convert converter="bean" match="org.appfuse.model.User"/-->
            <create  creator="new" javascript="check">
    <param name="class" value="com.cmn.webapp.action.user.TestAjax"> </param>
    </create>    </allow>
    </dwr> 你看你的dwr配置文件,怎么还有注释啊,SAXException,应该是XML解析的问题
      

  2.   

    我也遇到和你一样的问题“Failed to resolve: arg0=-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN”期待高手解决!
      

  3.   

    有可能版本的问题。dwr包的版本跟dwr.xml文件上的 <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> 信息对不起来。
      

  4.   

    将web.xml和dwr.xml都放在classes下能解决问题,但是每次都要操作太麻烦了
      

  5.   

    这个是dwr版本的问题,导致版本的不同的原因可能是你使用了struts2的dwr插件。
      

  6.   

    是版本问题,你可以到这个网站上看看,
    http://directwebremoting.org/dwr/downloads/index.html
    下载一个合适的版本2.0或3.0的
      

  7.   

    却是是版本问题。
    <!DOCTYPE dwr PUBLIC
        "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
        "http://directwebremoting.org/schema/dwr30.dtd">
    之前是"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN",我把它改成2.0就work了。