Java与Flex学习笔记(11)-关于Struts2拦截Flex请求的有关问题

Java与Flex学习笔记(11)----关于Struts2拦截Flex请求的问题

       昨天做一个东西时发现原来Flex与Java用RemoteObject通信好好的方式突然就不行了,我原以为是endpoint的路径有问题,但是经过仔仔细细的排查也没有发现问题。总是提示“404”错误:


Java与Flex学习笔记(11)-关于Struts2拦截Flex请求的有关问题


     后来查看控制台的错误信息输出才发现,由于这次将Struts2整合在一起了,所以,Struts2将此发送请求也拦截了:


There is no Action mapped for namespace/messagebroker and action name amf. - [unknown location]


      上网查了很久的资料发现原因的所在,我们在web.xml中配置Struts2的拦截器时习惯拦截所有的请求,即:


……

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

……


      在Flex与Struts2整合的时候如果还是采用这种方式的时候,会导致Flex无法与Struts2用remoteobject通信,我们应该调整成如下方式:


……

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>*.action</url-pattern>

  </filter-mapping>

……


       即只拦截Struts2的请求,这样就放过其他的请求,事实上这样做的确解决了问题,记录下。


        这是本人学习的结果,允许转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7738398,谢谢~