日期:2014-05-20  浏览次数:20721 次

struts2.0 和dwr整合 http://localhost:8080/项目名称/dwr报错
HTTP Status 404 - There is no Action mapped for namespace / and action name dwr.

不知道为什么总是报这个错,是不是我的配置文件那里写错了?大家有没有遇到过呢?

------解决方案--------------------
你为什么要访问这个地址呢?
dwr的servlet配置到Web.xml中了吗?

什么信息都没有,谁知道你有没有错?
------解决方案--------------------
你试试
http://ip:port/dwr/engine.js

并没有dwr这个Servlet或者Action。
------解决方案--------------------
估计你没理解DWR是怎么回事儿,或者理解错了,或者,你的表述我没法理解。
------解决方案--------------------
<filter-mapping> 
<filter-name>struts2 </filter-name> 
<url-pattern>/* </url-pattern> 
</filter-mapping>

 <servlet-mapping> 
<servlet-name>dwr-invoker </servlet-name> 
<url-pattern>/dwr/* </url-pattern> 
</servlet-mapping> 
  

这两个冲突了吧
------解决方案--------------------
在 struts.xml 中 

<constant name="struts.action.extension" value="action" />

其默认值是 action,, 除了 action 的后缀,无后缀也会被其拦截

总觉得楼上几位朋友似乎都用的 struts 1 啊
------解决方案--------------------
这是因为你在地址栏中提交请求时:struts2的拦截器会默认在其后添加.action
修改一下struts.xml如下:
<!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。-->
<constant name="struts.action.extension" value="do"/>
------解决方案--------------------
下面是DWR在WEB.XML中的配置信息,应该是你配置没正确
XML code

 <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>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>