首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex异常,高手请帮看看

2012-02-16 
flex错误,高手请帮看看[RPC Fault faultStringSend failed faultCodeClient.Error.MessageSend faul

flex错误,高手请帮看看
[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'http://localhost:8080/blazeds/messagebroker/amf'"]


我是通过一个filter /*拦下后dispatcher到MessageBrokerServlet 这样就出错了,
而我用自已写的一个Servlet则可以正确返回。

<filter>
<filter-name>flex</filter-name>
<filter-class>FlexFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>flex</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
  <!-- Http Flex Session attribute and binding listener support -->
  <listener>
  <listener-class>flex.messaging.HttpFlexSession</listener-class>
  </listener>

  <!-- MessageBroker Servlet -->
  <servlet>
  <servlet-name>MessageBrokerServlet</servlet-name>
  <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
  <init-param>
  <param-name>services.configuration.file</param-name>
  <param-value>/WEB-INF/flex/services-config.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  </servlet>

  // 自己的servlet可以正确返回
  <servlet>
  <servlet-name>Servlet</servlet-name>
  <servlet-class>MyServlet</servlet-class>  
  </servlet>

  <servlet-mapping>
  <servlet-name>Servlet</servlet-name>
  <url-pattern>/messagebroke/*</url-pattern>
  </servlet-mapping>
   
  <servlet-mapping>
  <servlet-name>MessageBrokerServlet</servlet-name>
  <url-pattern>/messagebroker/*</url-pattern>
  </servlet-mapping>


filter这样写的:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)arg0;
String url = req.getRequestURL().toString();
System.out.println("FlexFilter: "+url);
if(url.indexOf("messagebroker")!=-1){
req.getRequestDispatcher(url).forward(arg0, arg1);
} else if(url.indexOf("messagebroke")!=-1){

req.getRequestDispatcher(url).forward(arg0, arg1);
} else{
arg2.doFilter(arg0, arg1);
}
}

[解决办法]
'http://localhost:8080/blazeds/messagebroker/amf

url 错误吧.

这样你能在IE 中访问吗?
吧路径写全
[解决办法]
先把过滤器改一下试试
<filter>
<filter-name>flex</filter-name>
<filter-class>FlexFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>flex</filter-name>
<url-pattern>/messagebroker/*</url-pattern>
</filter-mapping>
如果还不好用,再看下项目的Context名是否正确,
再确认下有没有添加flex-messaging-remoting.jar

热点排行