gpt4 book ai didi

java - CXF 忽略 WebParam 注释中的 header 参数

转载 作者:行者123 更新时间:2023-12-01 11:17:41 26 4
gpt4 key购买 nike

我已经使用 wsdl2java 生成了代码,它可以与默认的 Java JAX-WS 实现一起正常工作。当我添加 CXF 时,我的应用程序停止工作。我知道这是因为切换 JAX-WS 实现( Why wsdl2java generated code use CXF dependencies at will? )。

我正在调试失败的具体原因,我发现我的所有参数都在消息正文中发送。这很奇怪,因为看起来 CXF 忽略了 header = true 参数。就像这样:

@WebParam(name = "auth", targetNamespace = "urn:ns", header = true)

为什么会这样呢?可能是什么原因?

第二个问题:

我认为调试注释处理可能对我有帮助。我读过一些相关文章,但我不知道在哪里可以找到 @WebParam 的注释处理器。有任何想法吗?还有其他提示吗?

最佳答案

我们遇到了完全相同的问题。您的 CXF 端点是如何定义的?显然,您定义了一个指向 wsdl.xml 的 wsdlURL 属性。您应该删除它。

我们的情况是这样的:

<cxf:cxfEndpoint
id="upsTrackEndpoint"
address="${ups.service.endpoint.track}"
wsdlURL="wsdl/Track.wsdl"
serviceClass="com.ups.wsdl.xoltws.track.v2.TrackPortType">
</cxf:cxfEndpoint>

我们把它改成这样:

<cxf:cxfEndpoint
id="upsTrackEndpoint"
address="${ups.service.endpoint.track}"
serviceClass="com.ups.wsdl.xoltws.track.v2.TrackPortType">
</cxf:cxfEndpoint>

看起来,当您定义 wsdlURL 属性时,header 属性被完全忽略。

关于java - CXF 忽略 WebParam 注释中的 header 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31609582/

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