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