JBoss 上 Flex/BlazeDS 的 Client.Error.MessageSend 问题

发布于 2024-08-11 00:45:55 字数 1326 浏览 5 评论 0原文

我正在开发一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

趴在窗边数星星i 2024-08-18 00:45:55

如果

<login-command class="**flex.messaging.security.TomcatLoginCommand**" server="Tomcat"/> 

该类表明安全性属于 tomcat,则应将其更改为实现接口 flex.messaging.security.LoginCommand 或任何安全接口 blaze 的类。

You have

<login-command class="**flex.messaging.security.TomcatLoginCommand**" server="Tomcat"/> 

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.

想你只要分分秒秒 2024-08-18 00:45:55

如果您浏览到 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文