Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404

本文针对初学者介绍了两种常见的Flex AMF 404错误及其解决方案。第一种情况涉及更改工程属性中的上下文目录。第二种情况则是因为web.xml缺少必要的配置,如flexservlet和监听设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




我的遇到的第二中情况,因为是初学所以丢三落四,找了好久终于发现了这篇文章解决了我的问题。分享给大家(初学者)

第一种情况:

  1. [RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost:8889/WebRoot/messagebroker/amf'"]  

当url中是webroot而不是工程名称时:修改工程属性中的上下文目录为工程名称解决
第二种情况:

  [RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost:8089/flexDemo/messagebroker/amf'"]  
当url中工程名称已经更新进去,有可能是web.xml里没有配置flexservlet和监听,没有配置的话也会出现以上错误
网上说的其他的修改方式,没有验证,我说的只是情况之一
解决方法就是在web.xml中添加如下说明;
<listener>
        <listener-class>flex.messaging.HttpFlexSession</listener-class>
    </listener>
  <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-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>

为了访问特定的IP地址和端口,例如 `129.204.245.13:3506`,可以通过多种方法进行测试和连接,具体取决于你的操作系统和网络环境。 ### 使用 Telnet 测试连接 在 Windows 系统上,可以使用 `telnet` 命令来测试与目标服务器的连接。如果系统中没有安装 `telnet` 客户端,可以通过以下步骤启用: 1. 打开“控制面板”,选择“程序” > “启用或关闭 Windows 功能”。 2. 勾选“Telnet 客户端”选项,点击“确定”进行安装。 3. 安装完成后,打开命令提示符(CMD),输入以下命令: ```bash telnet 129.204.245.13 3506 ``` 如果连接成功,说明该端口是开放的;如果连接失败或超时,则可能是防火墙阻止了连接或该端口未开放。 ### 使用 PowerShell 进行测试 PowerShell 提供了一种更现代的方式来测试 TCP 连接,可以使用以下命令: ```powershell Test-NetConnection 129.204.245.13 -Port 3506 ``` 此命令会返回连接是否成功的详细信息,包括端口是否可达。 ### 使用 `nc` (Netcat) 工具 在 Linux 或 macOS 系统上,可以使用 `nc` 命令来测试连接: ```bash nc -zv 129.204.245.13 3506 ``` 该命令会尝试连接到指定的 IP 和端口,并显示连接状态。 ### 检查防火墙设置 如果无法连接到目标端口,可能需要检查本地或服务器端的防火墙设置。确保目标服务器的防火墙允许传入流量到 `3506` 端口,并且本地防火墙没有阻止传出流量。 ### 使用在线工具进行检查 还可以使用在线工具(如 [YouGetSignal](https://www.yougetsignal.com/tools/open-ports/))来检查远程服务器的端口是否开放。这些工具可以从外部网络角度测试端口的可达性,帮助排除本地网络配置问题。 ### 总结 - **Windows**:使用 `telnet` 或 `Test-NetConnection` PowerShell 命令。 - **Linux/macOS**:使用 `nc` 命令。 - **防火墙**:确保本地和远程防火墙允许相关流量。 - **在线工具**:使用外部服务检查端口开放状态。 通过上述方法,可以有效测试和访问特定 IP 地址和端口的网络服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值