我正在为一个项目评估 Apache CXF,所以我编写了一个小型演示应用程序来尝试一些事情。按照 CXF 用户指南,我能够很快启动并运行我的应用程序。
我想测试的一件事是 CXF 能够如何处理返回大量基元数组的方法。所以我定义了一个方法' float[] getRandFloats(int count)
',它只返回一个指定长度的数组,里面填充了随机数。查看由 生成的 WSDL java2wsdl
,我看到该方法正确指示返回类型为float[]
. 检查客户端,我还看到我(最终)收到了一个float[]
.
我注意到当我增加数组中的元素数量时,客户端性能会受到影响。我在客户端运行了一个分析器,并看到Float
为返回的数组中的每个元素创建了对象。当 CXF 在解析响应期间调用 JAXB 时,似乎正在发生这种情况。
我正在评估 CXF 是否与可能发回数百万个浮点数的应用程序一起使用,因此这种对象创建是非常不可取的。为了使用 CXF,我需要找到一种方法来防止这种对象的创建发生。我已经浏览了文档和邮件列表,但还没有找到解决此问题的方法。
有没有人在使用 CXF 时遇到过类似的问题?如果是这样,你是如何解决这个问题的?