Expand my Community achievements bar.

Security Error in accessing Web service from Flex.Where to put crossdomain.xml in axis container?

Avatar

Level 1

Hi guys.

Typically webservices are invoked across domains. Flash has defined certain policies which prevent crossdomain access. The only way to bypass this security feature is to put a crossdomain.xml file within the server root of the webservice provider i.e. in our case at http://abc.com. A sample example of crossdomain.xml is as below:

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

If the crossdomain.xml is not added the developer will get “Security Error accessing URL” type of messages.

The above mentioned information should be enough for you to get your flex based WebService client up and running.

We are using axis2 to build webservices. We deployed the webservices under axis2 container under repository/srvices folder . But in Flex when we try to call the webservices we were getting the exception saying security error in accessing url. The solution is we need to put the crossdomain.xml o that it is loaded at runtime and allow us to access. In tomcat if we put the file under ROOT directory we could accss the file and we were able to access the webservices deployed under Tomcat. But I googled for Axis2 container and couldnt find any solution.

Please post the reply if anyone knows the solution to it.

Thanks

Raja

2 Replies

Avatar

Employee

Hi. I think probably the easiest way to get this to work is to not use axis2 in standalone mode and instead install it into a servlet container. Then you can just put your crossdomain.xml in the server root. If I have a couple spare minutes I'll take a look at the axis2 standalone server and see if I can find a way to get it to serve the crossdomain.xml file. I'll let you know if I come up with anything useful.

-Alex

Avatar

Employee

Hi. So, I did take a quick look at the Axis2 standalone server and didn't see any way to server up a file such as crossdomain.xml. It seems like it might be a useful enhancement to have the ability to serve up files even if this functionality was very simple/limited and nothing like a full blown http server.

I'd log an enhancement request against axis2 if this is something you'd like to have.

http://issues.apache.org/jira/browse/AXIS2

-Alex