I'm using ServiceMix 3.2.3 and am trying to send test messages from a file
into a web service and then ultimately (after getting past my current
hurdles) back out into another file. 

I've written the web service as a service assembly that uses a cxf-se
endpoint to provide a simple HelloWorld POJO as a web service and a cxf-bc
consumer endpoint to expose the web service to the outside world via
consuming HTTP+SOAP request.

The whole thing is essentially the product of following this tutorial:
http://servicemix.apache.org/4-beginner-web-services-with-servicemix-and-cxf.html
See this tutorial for the wsdl definition.

This part works fine for me. I've tested sending messages to it via SoapUI
as well as via a Ruby SOAP client.

I noted in the following info in the ServiceMix log file:
ServiceMix: broadcasting info for:
org.apache.servicemix.jbi.event.EndpointEvent[source=ServiceEndpoint[service={http://example.com}HelloService,endpoint=HelloImplPort]]

And later when it successfully handles incoming messages from SoapUI, I see:
  interface: {http://example.com}Hello
  service: {http://example.com}HelloService
  endpoint: HelloImplPort
  operation: {http://example.com}SayHello

Then, I wrote a service assembly that has a file poller endpoint that
monitors a directory for files containing an example SOAP message that I
generated via SoapUI. The file poller is supposed to then send the message
to my web service. To that end, I've set up a cxf-bc provider endpoint that
I've configured to reference the above web service.

However, every configuration combination that I've tried has resulted in
problems.

Currently, I have the provider configured as follows:

<cxfbc:provider wsdl="http://localhost:8193/HelloService/?wsdl";
      service="hello:HelloService" 
      endpoint="HelloSOAPBinding" />

where hello="http://example.com"; and the file poller is configured like
this:

<file:poller service="mock:TestMessageService"
      endpoint="FilePoller"
      targetService="hello:HelloService"
      targetEndpoint="HelloSOAPBinding"
      file="/temp/inbound" />

where mock="http://example.com/mock"; and hello="http://example.com";

When I copy a file containing the following text into the folder
/temp/inbound:
<soapenv:Envelope 
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
   xmlns:typ="http://example.com/types";>
   <soapenv:Header/>
   <soapenv:Body>
      <typ:SayHello>
         <typ:name>World</typ:name>
      </typ:SayHello>
   </soapenv:Body>
</soapenv:Envelope>

I get the following error:
  status: Active
  role: provider
  service: {http://example.com}HelloService
  endpoint: HelloSOAPBinding
  in: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:typ="http://example.com/types";>   

<soapenv:Header/>   <soapenv:Body> <typ:SayHello>        
<typ:name>World</typ:name></typ:SayHello>  

 </soapenv:Body></soapenv:Envelope>
]17:26:22,733 | INFO  | pool-flow.seda.servicemix-cxf-bc-thread-1 |
PhaseInterceptorChain    | 

he.cxf.common.logging.LogUtils  345 | Interceptor has thrown exception,
unwinding 
noworg.apache.cxf.interceptor.Fault: Message wrapper element is 
'{http://schemas.xmlsoap.org/soap/envelope/}Envelope' but expected 
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'       at 
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:97)


I also noticed:
Endpoint
ServiceEndpoint[service={http://example.com}HelloService,endpoint=HelloSOAPBinding]
has a service description, but no matching endpoint found in [soap]

when ServiceMix tries to load the cxf-bc su with the provider endpoint that
references the web service.

That suggests to me that it's not pointing at the correct endpoint, but if I
change it from HelloSOAPBinding to HelloImplPort then when I try to deploy
to ServiceMix, it fails with:
javax.jbi.JBIException: An internal endpoint for service
{http://example.com}HelloService and endpoint HelloImplPort is already
registered.

Any help on how to properly configure what I'm trying to achieve would be
appreciated.

Thanks!

-- 
View this message in context: 
http://www.nabble.com/Sending-messages-via-a-file-poller-into-a-cxf-bc-provider-endpoint-tp25654650p25654650.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to