您的位置:首页 > 编程语言 > Java开发

Flex+BlazeDS+Java项目只能使用localhost访问的问题

2012-01-06 21:02 615 查看
初次完成一个Flex+BlazeDS+Java项目,在部署时遇到一个问题:只能在所部属的机器上使用http://localhost:8080/...方法访问,不能使用机器名或IP地址访问,因此也就无法在其他的机器上访问这个服务了,具体报错如下:

faultCode:Client.Error.MessageSend faultString:'发送失败' faultDetail:'Channel.Security.Error error Error #2048 url: 'http://localhost:8080/{项目名称}/messagebroker/amf''

上网搜索结果主要集中在:

1、服务器端(Java项目)中的services-config.xml的{server.name}等的设置问题。将所有的{server.name}:{server.port}/{context.root}替换成实际的值,问题依旧存在。

2、安全沙箱问题。按照指示在webapps下添加crossdomain.xml文件,并重启服务器,问题依然存在。

最后自己检查客户端的RemoteObject的endpoint值,本项目采用的是使用as脚本写的RemoteObject调用,endpoint是采用xml文件动态配置的。

<?xml version="1.0" encoding="UTF-8"?>
<config>
<endpoint>http:localhost:8080/epms/messagebroker/amf</endpoint>
<appname>工程项目管理系统</appname>
<appcode>epms</appcode>
</config>

RemoteObject的基类中取endpoint值:this._endpoint = FlexGlobals.topLevelApplication.ServerConfig.endpoint;

把上述红色部分{http:localhost:8080}去掉变成相对地址,问题得以解决!

注:我的服务器是Tomcat 6.0.29,在Tomcat 5.5可能存在这种问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐