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

标签 java web-services soap annotations cxf

我已经使用 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/

相关文章:

java - Introductions in Introductions in Aspect Oriented Programming中的@DeclareParents注解

java - 无法在 openGL 中渲染形状

swift - 取消所有来自 Alamofire 的网络服务调用

web-services - 浏览器的 CRUD URL 设计(非 REST)

java - 测试客户端服务器

java - NumberFormatException 消息没有改变?

c# - 通过单选按钮更改网络服务调用以测试或生产

python - 使用 Spyne 创建多个服务

iphone - 用于 Objective-C/iPhone 与服务器解决方案的 SOAP、REST 或仅 XML

Ruby SOAP SSL 问题