Hi,
I found your CXF server and client are using different SEI, you need to
do some mapping work yourself.
Such as mapping the CxfConstants.OPERATION_NAME and
CxfConstants.OPERATION_NAMESPACE.
Willem
priteshgajjar wrote:
Hi All,
I have a CXF WebService running under Tomcat 6 which uses Camel to route the
request to remote CXF WebService.
Flow:
• CXF WebService receives SOAP message (running under Tomcat 6)
• Route the request to remote CXF WebService
Here is my xml configuration:
<cxf:cxfEndpoint id="orderEndpoint"
address="/oes"
serviceClass="camelinaction.order.OrderEndpoint"
serviceName="e:oes"
endpointName="e:OrderEndpointImplPort"
xmlns:e="http://order.camelinaction/"
/>
<cxf:cxfEndpoint id="testEndpoint"
address="http://192.168.0.57:6060/SampleBOPWS/DRService"
wsdlURL="http://192.168.0.57:6060/SampleBOPWS/DRService?wsdl"
serviceClass="camelinaction.order.DRService"
endpointName="s:DRServicePort"
serviceName="s:DRService"
xmlns:s="http://wsserver.websvc.xfact.com/"
/>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="cxf:bean:orderEndpoint" />
<to uri="cxf:bean:testEndpoint " />
</route>
</camelContext>
Every time I sent a request using CXF Client to orderEndpoint (CXF
WebService), I receive following exception:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException:
BindingOperationInfo must be specified
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
at $Proxy39.order(Unknown Source)
at
camelinaction.order.Oes_OrderEndpointImplPort_Client.main(Oes_OrderEndpointImplPort_Client.java:58)
Caused by: org.apache.cxf.binding.soap.SoapFault: BindingOperationInfo must
be specified
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99)
at
org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at
org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:700)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2261)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
... 2 more
Can anybody help me to solve this problem?