如何在cxf xml中启用寻址功能?

问题描述 投票:0回答:1

如何向XML添加默认的WS-addressing?

    <cxf:cxfEndpoint id="endpoint" xmlns:s="http://tempuri.org/"
      address="https://uslugaterytws1test.stat.gov.pl/TerytWs1.svc" 
      endpointName="s:custom" 
      serviceName="s:TerytWs1" 
      wsdlURL="classpath:/wsdl/terytws1.wsdl">
    <cxf:properties>
      <entry key="schema-validation-enabled" value="false" />
    </cxf:properties>
    <cxf:inInterceptors>
    </cxf:inInterceptors>
    <cxf:inFaultInterceptors>
    </cxf:inFaultInterceptors>
    <cxf:outInterceptors>
    </cxf:outInterceptors>
    <cxf:outFaultInterceptors>
    </cxf:outFaultInterceptors>
  </cxf:cxfEndpoint>


  <cxf:cxfEndpoint id="poxyEndpoint" xmlns:s="http://tempuri.org/"
      address="http:localhost:5678/myproxy" 
      endpointName="s:customProxy" 
      serviceName="s:TerytWs1Proxy" 
      wsdlURL="classpath:/wsdl/terytws1Proxy.wsdl">
    <cxf:properties>
      <entry key="schema-validation-enabled" value="false" />
    </cxf:properties>
    <cxf:inInterceptors>
    </cxf:inInterceptors>
    <cxf:inFaultInterceptors>
    </cxf:inFaultInterceptors>
    <cxf:outInterceptors>
      <ref component-id="wssOutInterceptor" />
    </cxf:outInterceptors>
    <cxf:outFaultInterceptors>
      <ref component-id="wssOutInterceptor" />
    </cxf:outFaultInterceptors>
  </cxf:cxfEndpoint>



  <camelContext id="proxyTerytContext" xmlns="http://camel.apache.org/schema/blueprint">
  <route id="route-TerytWs1">
      <from id="inbound" uri="cxf:bean:proxyEndpoint?dataFormat=CXF_MESSAGE" />
      <to id="outbound" uri="cxf:bean:endpoint?dataFormat=CXF_MESSAGE" />
    </route>
  </camelContext>

[当我向http:localhost:5678/myproxy发送请求时,我得到:

<faultcode xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</faultcode>
<faultstring xml:lang="en-US">An error occurred when verifying security for the message.</faultstring>

我已经阅读了许多类似的问题和示例,但是还没有找到纯cxf xml的解决方案。我已经尝试解决了2天。现在我在哭。

java soap apache-camel cxf ws-addressing
1个回答
0
投票

Camel单元测试中有一些示例,这些示例在启用WS-Addressing的情况下测试CXF端点; WSAddressingTest-context.xml似乎与您的问题有关?

在这里,通过在wsa:addressing中添加features元素在CXF端点上启用了WS-Addressing:>

<cxf:cxfEndpoint...>
    <cxf:features>
        <wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing" />
    </cxf:features>
</cxf:cxfEndpoint>
© www.soinside.com 2019 - 2024. All rights reserved.