在JBoss中加载Apache APR库时,不会加载Solaris上的Flash SWF

时间:2011-01-24 14:19:43

标签: flex flash jboss graniteds apr

更新+解决方案===============================

很抱歉在这里发布解决方案而不是评论,但是关于我的工作过滤的一些内容不允许评论功能对我有效。

我最终使用jboss中的-b 0.0.0.0属性绑定到所有地址,因此我可以尝试使用机器B作为客户端访问机器A的服务器,反之亦然。我发现在机器B上运行时总是无法加载,无论我是从A还是B连接。

我在同一网络上的Windows机器上启动了wireshark,并观察了加载网页的TCP连接。我看到在失败的情况下.swf的请求内容长度为200万左右,当我右键单击wireshark日志并选择“查看会话”或类似内容时,总会话的大小得到.swf文件只有130,000。看看:缓存,大约相当于它在页面上说“完成”之前最终缓存的内容。

我最终发现useSendFile属性存在错误。 (http://community.jboss.org/thread/148651?tstart=0)。这会导致它只在内核内存不足时发送部分文件。在我们的server.xml中使用useSendFile =“false”似乎解决了这个问题。

=============================================== ===

原始问题

我有一个JBoss(5.1.0.GA)应用服务器。我使用GraniteDS连接应用程序服务器和客户端。客户端是基于闪存的。

Granite DS需要使用APR库(apache本机库),所以我正在加载它。我在JBoss日志中看到它说它加载了apache本地库就好了(版本1.18,虽然我也试过1.20)。

问题在于,当我拥有它以便APR库成功加载时,应用程序的Flash端通常不会加载。我将不得不多次刷新并最终通常会加载,但通常我会看到一个黑色网页上写着“完成”或加载进度条永远不会移动。只有反复点击刷新才能加载页面。它最终会通过足够的刷新加载,但它不一致,这显然不适用于每次都必须清除浏览器缓存的客户。

此问题仅存在于Solaris上,我们的应用程序在Windows上运行正常。我们已经尝试了多个补丁级别的solaris,并且已经使用“ldd”命令验证了需要加载的库具有所有依赖关系。

我们通过测试验证了它不是我们的swf文件的大小: 1)我们的常规SWF(1660 kb)。 2)随机大型SWF(950kb)。 3)一个小型SWF,其中一个标签组件显示为“Test”(277 kb)。

当JBoss也加载本机库时,所有3个都无法加载,并且在没有它的情况下加载就好了。我们需要本机库成功加载Granite以连接客户端和服务器之间,因此不加载它不是一个选项(除非有一些方法使用JBoss的NIO连接器,但它似乎不受支持)....如果有办法使用NIO连接器,那么我们就不需要APR库了。

以前有人碰到过吗?有人有任何想法或建议吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过用于Solaris的jboss本机库?

http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-9.html