2011-05-23 37 views
1

我有一个JAX-RS(Rest)Web服务,它只支持通过SSL访问。使用Flex访问JAX-RS

如果我尝试通过IE提供相应参数来访问它,我会得到正确的响应。

现在,使用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请求错误” faultstring。

我已经添加了此跨域文件到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的某处。

任何想法?

+0

在“flexApplicationIp”你在真正的IP地址或域名投入?如果域是证书中的完全限定域?我一直在我们的公司网络上遇到这个问题,证书是server.abcom,在浏览器中我们可以从“服务器”得到它,但它做了重定向,服务客户端不会遵循重定向,并拒绝该证书为错误的域名。 – mezmo 2011-05-23 14:22:27

+0

我把真正的IP地址 – RedEagle 2011-05-23 14:43:54

回答

0

只需添加以下提到here瞧步骤证书......懂了工作

0

至少,crossdomain.xml应放置在war文件的根目录中,因为它必须可供flash插件访问。根据规范,WEB-INF的内容不能直接被客户访问。

+0

感谢您的拥抱...... 在它之后,我将crossdomain.xml文件放在WebContent文件夹中,其中包含META-INF和WEB-INF,而不是在WEB-INF中文件夹,但不幸的是,没有工作。 还有什么想法? – RedEagle 2011-05-23 13:30:29

+0

您是否看到(在服务器日志文件中)客户端请求是否到达服务器?另一个问题:它没有SSL的工作吗? – aav 2011-05-23 17:25:45

+0

是的请求到达服务器,并没有SSL Flex成功获得结果... – RedEagle 2011-05-23 17:28:14