Cxf Endpoint встает с началом верблюжьего контекста.Как я могу избежать этого? - PullRequest
0 голосов
/ 25 марта 2019

Я использую конечную точку CXF для мыльного веб-сервиса. И когда мой верблюжий контекст запускается, он проверяет, работает ли веб-служба или нет. Я хочу изменить его, например, когда мой маршрут вызывает конечную точку 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 голосов
/ 26 марта 2019

CXF не проверяет доступность услуги, которую вы вызываете при запуске маршрута. CXF установит соединение Http (s) только после выполнения запроса. Я подозреваю, что у вас возникли проблемы с обнаружением WSDL с конечной точки службы, которую вы вызываете, и в этом случае он может установить соединение для загрузки WSDL и схем при создании экземпляра CXFEndpoint.

Вначале может помочь загрузка WSDL и схем и загрузка их из файла в автономном режиме вместо использования serviceUrl?WSDL.

...