You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DWR 3.0.2-RELEASE在Wildfly+反向Ajax环境下运行Clock Demo报405错误求助

问题分析与解决方案

嘿,我来帮你拆解这个问题:你看到的405(Method Not Allowed)错误,本质是DWR反向Ajax的URL模板里的占位符${overridePath}和${plainCallHandlerUrl}没有被正确替换成实际路径,导致请求发往了一个Wildfly无法识别的无效地址,自然返回了方法不允许的错误。

核心原因

DWR的反向Ajax逻辑依赖动态生成请求URL,这些占位符原本应该在DWR初始化时被替换成你配置的Servlet映射路径(也就是/dwr),但因为配置缺失或者版本兼容性问题,替换失败了,才会出现带${xxx}的奇怪URL。

具体解决方案

  • 添加overridePath初始化参数
    在web.xml的DwrServlet配置里,明确指定overridePath参数,把它设置为你的DWR Servlet映射路径/dwr,这样占位符就能被正确替换:

    <servlet>
      <servlet-name>dwr</servlet-name>
      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
      <!-- 保留你原有的其他参数 -->
      <init-param>
        <param-name>overridePath</param-name>
        <param-value>/dwr</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
    </servlet>
    
  • 检查Servlet版本兼容性
    DWR 3.0.2是比较旧的版本,Wildfly默认使用Servlet 3.0+规范,两者可能存在兼容性问题。你可以尝试在web.xml的根节点添加Servlet 2.5的声明(如果你的应用允许的话):

    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             version="2.5">
      <!-- 你的其他配置 -->
    </web-app>
    

    或者考虑升级DWR到最新的3.x稳定版本,新版本对Servlet 3.0+的兼容性更好。

  • 验证反向Ajax初始化顺序
    在Clock.html的window.onload函数里,确保dwr.engine.setActiveReverseAjax(true);是在dwr.engine.init()之后执行的,顺序错误也可能导致路径解析异常:

    window.onload = function() {
      dwr.engine.init({
        // 可选:明确指定dwr路径,比如 path: "/dwr"
      });
      dwr.engine.setActiveReverseAjax(true);
      // 其他Clock相关逻辑
    };
    
  • 清理浏览器缓存
    有时候浏览器缓存的旧版engine.js会导致占位符无法重新解析,建议清空Chrome缓存或者用隐私模式打开页面测试。

验证方法

修改配置后重启Wildfly,重新访问Clock.html,打开Chrome控制台看请求URL,如果变成了http://localhost:9090/context-path/dwr/__System.checkHeartbeat.dwr,说明占位符已经被正确替换,反向Ajax应该就能正常工作了。

内容的提问来源于stack exchange,提问作者robyp7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:03:49