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访问JAX-RS_Apache Flex_Ssl_Jax Rs - Fatal编程技术网

Apache flex 使用Flex访问JAX-RS

Apache flex 使用Flex访问JAX-RS,apache-flex,ssl,jax-rs,Apache Flex,Ssl,Jax Rs,我有一个JAX-RS(Rest)web服务,它只支持通过SSL进行访问 如果我尝试通过输入相应的参数来访问它,我会得到正确的响应 现在使用Flex的HTTPService组件,如下所示: <s:HTTPService id="httpsService" url="https://myIp:myHTTPSPort/JAXRS/jaxrs/GetText" resultFormat="text" re

我有一个JAX-RS(Rest)web服务,它只支持通过SSL进行访问

如果我尝试通过输入相应的参数来访问它,我会得到正确的响应

现在使用Flex的HTTPService组件,如下所示:

<s:HTTPService id="httpsService" 
               url="https://myIp:myHTTPSPort/JAXRS/jaxrs/GetText" 
               resultFormat="text"
               result="httpsService_resultHandler(event)"
               fault="httpsService_faultHandler(event)">
   <s:request>              
      <text>My Text</text>              
   </s:request>
</s:HTTPService>

我的文字
故障事件以“HTTP请求错误”故障字符串开始

我已将此跨域文件添加到WEB服务项目的WEB-INF文件夹:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="flexApplicationIp" secure="true"/>
</cross-domain-policy>

…但正如你可能猜到的那样,这不起作用

我在web服务的主机上有一个自己生成的HTTPS证书,所以我不知道是否需要在Flex的某个地方添加它


有什么想法吗?

至少,crossdomain.xml应该放在war文件的根目录中,因为它必须可以通过flash插件访问。根据规范,客户端无法直接访问WEB-INF的内容

只是按照上面提到的步骤添加了证书,瞧。。。让它工作起来了

谢谢你的建议。。。接下来,我将crossdomain.xml文件放在WebContent文件夹中,其中包含META-INF和WEB-INF,而不是WEB-INF文件夹,但不幸的是,这不起作用。还有什么想法吗?您是否看到(在服务器日志文件中)客户端请求是否曾经到达服务器?另一个问题:它在没有SSL的情况下工作吗?是的,请求到达服务器,没有SSL Flex成功地得到结果…可能是,你下载了flashlet over http并尝试通过https进行连接吗?在“flexApplicationIp”中,你是在输入真实的IP地址还是域?如果域是证书中的完全限定域?我在我们的公司网络上一直遇到这个问题,证书是针对server.a.b.com的,在浏览器中,我们可以从“server”访问它,但它会重定向,服务客户端不会遵循重定向,并将证书作为错误的域拒绝。我输入的是真实的ip地址