JBoss 上 Flex/BlazeDS 的 Client.Error.MessageSend 问题
我正在开发一个 Flex 3.4 应用程序,该应用程序通过最新版本的 BlazeDS 与运行在 JBoss-4.2.2 服务器上的 Java EE 后端进行互操作。当我在 Tomcat 上从 Flash Builder 4 beta 2 运行 Flex 应用程序时,一切都很好,Flex 应用程序能够进行所需的远程调用。但我的生产环境位于 JBoss 上,当我将应用程序移至 JBoss(更新 services-config.xml 以适应 JBoss)时,Flex 应用程序在远程调用时不断抱怨 Client.Error.MessageSend。 起初,当我手动将应用程序部署到 JBoss 时,错误详细信息为 “Channel.Security.Error error Error #2048 ...”
;后来我尝试从Flash Builder运行该应用程序,然后faultDetail变成“Channel.Connect.Failed error NetConnection.Call.BadVersion”
。
在 services-config.xml 中,
下,是:
<login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
当移动到 JBoss 时,我将其更新为:
<login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss"/>
我在 JBoss 的部署文件夹中放置了一个 crossdomain.xml,如下所示:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
但是看起来就像它不起作用一样。我还尝试将 crossdomain.xml 放入deploy/xxxxx.war文件夹中,问题仍然存在。
我使用的是 http://,而不是 https://,所以我猜这与安全通道无关。
尝试寻找解决方案,但大多数解决方案都与 PHP 相关,这并没有多大帮助。有人有任何线索吗?
I'm developing a Flex 3.4 app that interops with a Java EE backend running on a JBoss-4.2.2 server, through the most recent release of BlazeDS. When I ran the Flex app from Flash Builder 4 beta 2 on Tomcat, everything was fine, the Flex app was able to make the remote call needed. But my production environment is on JBoss, and when I moved the app to JBoss (with services-config.xml updated to fit JBoss), the Flex app keeps complaining Client.Error.MessageSend upon remote calls.
At first, when I manually deployed the app to JBoss, the faultDetail was "Channel.Security.Error error Error #2048 ... "
; later I tried to run the app from Flash Builder, and then faultDetail became "Channel.Connect.Failed error NetConnection.Call.BadVersion"
.
In services-config.xml, under <security>
, was:
<login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
when moving to JBoss, I updated it to:
<login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss"/>
I have a crossdomain.xml placed in JBoss' deploy folder, as follows:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
But looks like it doesn't work. I've also tried to put crossdomain.xml in deploy/xxxxx.war folder, and the problem remains.
I'm using http://, not https://, so I guess it's not about security channel.
Tried to search for a solution, but most solutions were PHP related, which wasn't really helpful. Any one got any clues?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果
该类表明安全性属于 tomcat,则应将其更改为实现接口 flex.messaging.security.LoginCommand 或任何安全接口 blaze 的类。
You have
Where the class indicates that security is of tomcat you should change it to a class that implements the interface flex.messaging.security.LoginCommand or any security interface blaze.
如果您浏览到 http://your.application.root/crossdomain.xml,文件加载?最简单的配置是将文件放在域的根目录下。
If you browse to http://your.application.root/crossdomain.xml, does the file load? The simplest configuration is to put the file at the root of the domain.