我正在使用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>
答案 0 :(得分:0)
在路由启动时,CXF不会检查您正在调用的服务的可用性。发出请求时,CXF将仅建立Http(s)Connection。我怀疑您在从正在调用的服务端点发现WSDL时遇到问题,在这种情况下,当实例化CXFEndpoint
时,它可能会建立一个下载WSDL和模式的连接。
首先下载WSDL和模式,然后从文件脱机加载而不是使用serviceUrl?WSDL
可能会帮助您。