开源的AJAX引擎buffalo好像不支持方法重载,但远程接口包含相同方法名,参数不同的方法时,总会有其中一个调用出现以下异常:
com.caucho.burlap.io.BurlapProtocolException: expected string at </burlap:call>
at com.caucho.burlap.io.BurlapInput.error(BurlapInput.java:1657)
at com.caucho.burlap.io.BurlapInput.expectedTag(BurlapInput.java:1652)
at com.caucho.burlap.io.BurlapInput.readString(BurlapInput.java:733)
at com.caucho.hessian.io.BasicDeserializer.readObject(BasicDeserializer.java:170)
at com.caucho.burlap.io.BurlapInput.readObject(BurlapInput.java)
at net.buffalo.service.invoker.burlap.BurlapInvoker.invoke(BurlapInvoker.java:200)
at net.buffalo.service.BuffaloWorker.processRequest(BuffaloWorker.java:76)
at net.buffalo.web.servlet.ApplicationServlet.doRequest(ApplicationServlet.java:125)
at net.buffalo.web.servlet.ApplicationServlet.doPost(ApplicationServlet.java:88)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
at com.caucho.util.ThreadPool.run(ThreadPool.java:433)
at java.lang.Thread.run(Thread.java:595)
对于上面问题的处理,只需要保持方法名不同即可。但从面向对象的观点,改善是必要的。