Apache CXF无法在收到的请求中解析显式SOAP标头

时间:2018-10-02 08:38:03

标签: java soap cxf wsdl2java

我正在使用wsdl2java Gradle pluginSpring Boot CXF JAX-WS Starter来实现RPC /文字SOAP服务,该消息中的多个部分都包含显式SOAP头。当我向包含显式SOAP标头的非空值的服务发送示例请求时,我希望Apache CXF能够解析该值并将其传递给我的服务实现。但是,我观察到null被传递了。

我已经提供了一个sample Gradle project来说明问题。使用./gradlew bootrun运行它,然后将以下SOAP请求发送到http://localhost:8080/services/port

<soapenv:Envelope
    xmlns:nam="namespace 2"
    xmlns:nam1="namespace 1"
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header>
    <header>
      <nam:element-1>element 1</nam:element-1>
    </header>
  </soapenv:Header>
  <soapenv:Body>
    <nam1:operation>
      <element-2>element 2</element-2>
    </nam1:operation>
  </soapenv:Body>
</soapenv:Envelope>

预期的控制台输出应类似于:

Header: namespace._2.Header@12345678
Element 2: element 2

但是,它是这样的:

Header: null
Element 2: element 2

0 个答案:

没有答案