骆驼 CXF - 如何在电子邮件中发送 SOAP 请求响应


Here is my spring configuration.
Spring.xml
-------------
<!-- Outgoing SOAP client endpoint -->
    <cxf:cxfEndpoint id="serviceEndpoint" address="${endpointAddress}"
        wsdlURL="${wsdlAddress}" endpointName="${portName}" serviceName="${serviceName}">
        <!-- The interceptors - needed to log the SOAP requests and responses -->
        <!-- They can be removed, when no logging is needed -->
        <cxf:inInterceptors>
            <ref bean="loggingInInterceptor" />
        </cxf:inInterceptors>
        <cxf:outInterceptors>
            <ref bean="loggingOutInterceptor" />
        </cxf:outInterceptors>
        <cxf:outFaultInterceptors>
            <ref bean="loggingOutInterceptor" />
        </cxf:outFaultInterceptors>
        <cxf:inFaultInterceptors>
            <ref bean="loggingInInterceptor" />
        </cxf:inFaultInterceptors>
<cxf:properties>
            <entry key="dataFormat" value="PAYLOAD" />          
        </cxf:properties>
    </cxf:cxfEndpoint>
    <http:conduit name="*.http-conduit">
        <http:tlsClientParameters disableCNCheck="${disableHostnameCheck}">
            <sec:keyManagers keyPassword="${keystorePassword}">
                <sec:keyStore type="JKS" password="${keystorePassword}"
                    file="${keystoreLocation}" />
            </sec:keyManagers>
            <sec:trustManagers>
                <sec:keyStore type="JKS" password="${truststorePassword}"
                    file="${truststoreLocation}" />
            </sec:trustManagers>
            <sec:cipherSuitesFilter>
                <!-- these filters ensure that a ciphersuite with export-suitable or 
                    null encryption is used, but exclude anonymous Diffie-Hellman key change 
                    as this is vulnerable to man-in-the-middle attacks -->
                <sec:include>.*_EXPORT_.*</sec:include>
                <sec:include>.*_EXPORT1024_.*</sec:include>
                <sec:include>.*_WITH_DES_.*</sec:include>
                <sec:include>.*_WITH_AES_.*</sec:include>
                <sec:include>.*_WITH_NULL_.*</sec:include>
                <sec:exclude>.*_DH_anon_.*</sec:exclude>
            </sec:cipherSuitesFilter>
        </http:tlsClientParameters>
        <http:client AutoRedirect="true" Connection="Keep-Alive"
            ReceiveTimeout="${connectionTimeout}" ConnectionTimeout="${connectionTimeout}" />
    </http:conduit>
Here is the Camel route configuration
-------------
<from ...
<to uri="cxf:bean:serviceEndpoint" />
This works well and we can have the soap request/response logged into the log file. Here soap request with soap header is generated by cxf.

我们有没有办法将肥皂请求和响应捕获到 Camel Exchange 中?如果服务调用失败,我必须发送一封附有 soap 请求和响应的电子邮件。尝试使用本地线程,但它似乎无法正常工作。

建议:

您在 CXF 拦截器中有它 - 看看它们。

我想,你可以从中发送电子邮件。

org.apache.cxf.phase.AbstractPhaseInterceptor类开始 - 不同阶段有很多不同的课程。

附言乍一看org.apache.cxf.binding.soap.saaj.SAAJInInterceptororg.apache.cxf.binding.soap.saaj.SAAJOutInterceptor可能是很好的候选人...

相关内容

  • 没有找到相关文章

最新更新