Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex和JavaServlet:“;通道安全错误“;_Apache Flex_Servlets - Fatal编程技术网

Apache flex Flex和JavaServlet:“;通道安全错误“;

Apache flex Flex和JavaServlet:“;通道安全错误“;,apache-flex,servlets,Apache Flex,Servlets,问题: 无法将HTTP“GET”请求从Flex发送到java servlet 继续获取此错误消息:[RPC Fault faultString=“访问url时发生安全错误”faultCode=“Channel.Security.error”faultDetail=“Destination:DefaultHTTP”] 详情: 我已经为客户端使用Flex,为服务器端使用JavaWeb应用程序(基于servlet)构建了一个国际象棋游戏 我正在我的PC上托管flex应用程序(使用HFS~HTTP文件服

问题:

无法将HTTP“GET”请求从Flex发送到java servlet

继续获取此错误消息:[RPC Fault faultString=“访问url时发生安全错误”faultCode=“Channel.Security.error”faultDetail=“Destination:DefaultHTTP”]

详情:

我已经为客户端使用Flex,为服务器端使用JavaWeb应用程序(基于servlet)构建了一个国际象棋游戏

我正在我的PC上托管flex应用程序(使用HFS~HTTP文件服务器,在端口80上侦听),java web应用程序也在我的PC上运行(在端口8080上的NetBeans上使用glass fish侦听)

当我在本地运行flex应用程序时,从-D://path到/flex-app.html,一切都很好,但是,当我从-'运行flex应用程序时http://domain-name/flex-app.html“-我收到上面的错误,服务器上没有记录任何请求

我试图将crossdomain.xml文件添加到服务器根文件夹,即使是最允许的,也没有成功

crossdomain.xml文件(可在'http://localhost:8080/crossdomain.xml”)详情如下:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all" />  
    <allow-access-from domain="*" to-ports="*" secure="false"/>
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

在flex声明部分,我有一个httpService:

    <s:HTTPService id="loginService"
                   url="http://localhost:8080/Chess/Login" 
                   fault="onFault(event)"
                   result="login_onResult(event)"
                   resultFormat="object"
                   showBusyCursor="true"/>


感谢您的帮助。

您的文件系统提供的SWF不受跨域限制;但是从web服务器上提供的文件是无效的。您需要在服务器(也称为localhost:8080)上安装一个crossdomain.xml文件,以避免出现安全错误。此外,您可能也不想将“localhost”硬编码到应用程序中。您可能想发布您的crossdomain.xml文件。您好,我编辑了我的帖子并添加了crossdomain.xml文件。我使用了“Charles-Web Debugging Proxy”(查看请求流量的绝佳工具),发现flex应用程序请求从“”下载crossdomain.xml文件,而不是我硬编码的url。+1用于使用网络嗅探器。是否有任何类型的服务器从端口8080重定向到端口37813?应用程序是否有其他部分可以呼叫端口37813?您确定您的Java服务器配置在端口8080上吗?我不知道有任何可能的重定向,应用程序的任何其他部分都无法调用37813。(另外,它还随其他?hostname=“localhost:8080”)一起发送。无论如何,我在另一台PC上部署了服务器和flex应用程序,一切正常,所以主要问题消失了。我出现问题的原因是,我认为crossdomain.xml文件应该可以从web应用程序的根目录(“localhost:8080/Chess”)访问,而实际上它应该可以从服务器本身的根目录(“localhost:8080/”)访问。感谢您的帮助。如果在Flash Builder中启用了网络监视器,则在Google Chrome和Firefox浏览器上,任何HTTPService请求都将返回与端口localhost:37813相关的HTTP 502错误。IE 8很好用。应用程序是通过FlashBuilder中的调试模式运行还是独立运行并不重要。解决方法是禁用网络监视器。