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)
<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)
<!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解析的问题
"http://www.getahead.ltd.uk/dwr/dwr20.dtd"> 信息对不起来。
http://directwebremoting.org/dwr/downloads/index.html
下载一个合适的版本2.0或3.0的
<!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了。