gpt4 book ai didi

java - 如何阻止 Apache CXF 将基元转换为对象类型?

转载 作者:行者123 更新时间:2023-11-30 05:16:25 25 4
gpt4 key购买 nike

我正在评估一个项目的 Apache CXF,因此我编写了一个小型演示应用程序来尝试一些事情。按照 CXF 用户指南,我能够很快地启动并运行我的应用程序。

我想测试的一件事是 CXF 能够如何很好地处理返回大量基元的方法。因此,我定义了一个方法“float[] getRandFloats(int count)”,它只是返回一个指定长度的数组,其中填充了随机数。查看 java2wsdl 生成的 WSDL,我发现该方法正确指示了 float[] 返回类型。检查客户端,我还发现我(最终)收到了一个 float[]

我注意到,当我增加数组中的元素数量时,客户端性能会受到影响。我在客户端运行了一个探查器,发现为返回数组中的每个元素创建了 Float 对象。当 CXF 在解析响应期间调用 JAXB 时,似乎会发生这种情况。

我正在评估 CXF 是否与可能发送回数百万 float 的应用程序一起使用,因此这种对象创建是非常不受欢迎的。为了使用 CXF,我需要找到一种方法来防止发生此对象创建。我已经浏览了文档和邮件列表,但还没有找到解决此问题的方法。

有人在使用CXF时遇到过类似的问题吗?如果是这样,您是如何解决这个问题的?

最佳答案

这绝对不是 CXF 能做的事情。这更多是一个 JAXB 问题。我相信,在内部,JAXB 将所有“maxOccurs != 1”情况作为 java 集合而不是数组处理。如果需要,它只是将转换为数组作为该过程的最后一步。由于java集合不能保存基元,因此它将存储Float对象。

无论如何,这必须由 JAXB 人员来解决。 :-(

关于java - 如何阻止 Apache CXF 将基元转换为对象类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/962564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com