Cxf端点从骆驼上下文开始。我如何避免这种情况?

时间:2019-03-25 07:24:38

标签: java web-services soap apache-camel cxf

我正在使用CXF端点进行肥皂网络服务。当我的骆驼上下文启动时,检查Web服务是否正在运行。我想像在我的路由当时调用CXF端点时那样更改它,它应该检查我的服务是否正在运行?     有什么建议可以满足我的要求吗?

CXF Endpoint:  

    <cxf:cxfEndpoint id="accountBalanceServiceEndpoint"
            address="{{wsdlUrlTest}}"
            wsdlURL="{{wsdlUrlTest}}?wsdl"
            serviceName="s:AccountBalanceService"
            endpointName="s:AccountBalancePort"
            xmlns:s="http://soap.test.pqr.abc.com/"> 
            <cxf:properties>
                       <entry key="dataFormat" value="MESSAGE"/>
                    </cxf:properties>
     </cxf:cxfEndpoint> 


 Route:

<route id="SoapService" startupOrder="40">
    <from uri="direct:SoapService" />
            <setHeader headerName="operationNamespace">
              <constant>http://soap.test.pqr.abc.com/</constant>
            </setHeader>
            <setHeader headerName="operationName">
              <constant>getContacts</constant>
            </setHeader>
             <setBody>
                <simple>
                    <![CDATA[
                    <soapenv:Envelope  

                          xmlns:q0="http://soap.test.pqr.abc.com/"  

                          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
                            >  
                          <soapenv:Body>
                            <q0:getContacts> 
                              <arg0>
                                <custId>12345</custId>
                             </arg0>
                            </q0:getContacts>
                          </soapenv:Body>  

                        </soapenv:Envelope> 

                    ]]>
                </simple>
             </setBody>
             <to uri="cxf:bean:accountBalanceServiceEndpoint?defaultOperationName=getContacts" />
    </route>

1 个答案:

答案 0 :(得分:0)

在路由启动时,CXF不会检查您正在调用的服务的可用性。发出请求时,CXF将仅建立Http(s)Connection。我怀疑您在从正在调用的服务端点发现WSDL时遇到问题,在这种情况下,当实例化CXFEndpoint时,它可能会建立一个下载WSDL和模式的连接。

首先下载WSDL和模式,然后从文件脱机加载而不是使用serviceUrl?WSDL可能会帮助您。