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

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


Java与Flex学习笔记(11)----关于Struts2拦截Flex请求的问题_第1张图片


     后来查看控制台的错误信息输出才发现,由于这次将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://www.dianfusoft.com/




你可能感兴趣的:(java,struts,Flex,action)