java – 在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时,faultDetail是“Channel.Security.Error error Error#2048 ……”;后来我尝试从Flash Builder运行应用程序,然后faultDetail成为“Channel.Connect.Failed错误NetConnection.Call.BadVersion”.

在services-config.xml中,在< security>下面是:

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

移动到JBoss时,我将其更新为:

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

我在JBoss的deploy文件夹中放置了一个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相关,这实际上没有用.有人得到任何线索吗?

解决方法:

你有

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

如果类指示安全性是tomcat,则应将其更改为实现接口flex.messaging.security.LoginCommand或任何安全性接口blaze的类.

上一篇:java – 在arquillian测试中使用shrinkWrap在部署jar中添加包


下一篇:Spring存储库中的EntityManager注入时的java.lang.NullPointerException