Gert, I think I've understood consumer/producer lingo, but ... I would like to test the cxfbc:provider by sending an HTTP (or JMS) request to the ESB.
That's why I've created a consumer http:endpoint that receives the HTTP request and forwards it - via a RouteBuilder - to the cxfbc:provider which forwards the HTTP request to the external webservice. Is this the correct way to test the cxfbc:provider or is there another (better) way of achieving this ? Regards, Stefan. Gert Vanthienen wrote: > > Stefan, > > An <http:consumer/> is an external endpoint. It is available from the > outside world and is used to expose a service that is available to the > outside world using plain HTTP or HTTP/SOAP. It will receive an HTTP > request, send a MessageExchange through the ESB and optionally send back > the reponse over HTTP. > > An <http:provider/> is an internal endpoint, that is available from the > ESB itself. It is used make an external HTTP or HTTP/SOAP service > availble in the ESB. This is similar to what you do with your > <cxfbc:provider/>, you make the external service hosted at > https://e-depottest.smals-mvm.be/fphp/3.1/ws/PersonQuery.jws available > inside the ESB. It receives a MessageExchange and does an HTTP request > from that. > > If you combine both of them, like you are doing here, you are using > ServiceMix as a web service proxy: with the <cxfbc:provider/> you make the > service available on the ESB and you can use all kinds of consumer > endpoints (HTTP, JMS, ...) to allow the outside world to access the > service again. > > Does this clarify the consumer/producer lingo for you? > > > > > stlecho wrote: >> >> Hi, >> >> Based on the documentation "A consumer endpoint is a server-side http >> endpoint that will consume plain HTTP, or HTTP+SOAP requests and send >> them into the NMR to a given JBI endpoint" I think I should use a >> consumer endpoint. Why should I use a provider, which - again according >> to the documentation - is called (internally?) by the NMR ? >> >> I definitely would like to receive an answer, so I will change the MEP >> and use "http://www.w3.org/2004/08/wsdl/in-out" instead. >> >> Regards, Stefan. >> >> >> Edell Nolan wrote: >>> >>> Hi, >>> >>> From looking at your modules I am just thinking that maybe your >>> http:endpoint should be a consumer so that it can receive >>> your request forward it to the cxf-bc and it makes the call to the >>> external >>> web service. >>> >>> Also your have defined it to have a mep as in-only - so you won't get a >>> response back. >>> >>> Is this was you want to do ? >>> >>> Edell. >>> >>> On Thu, Aug 21, 2008 at 4:40 PM, stlecho <[EMAIL PROTECTED]> wrote: >>> >>>> >>>> Edell, >>>> >>>> I've done the suggested modifications and the deployment of the SA is >>>> working :o). Thank you very much for helping me. >>>> >>>> Now I would like to test via the http:endpoint the call to the >>>> webservice. >>>> I've tried to send an HTTP request to http://localhost:8192/bridge but >>>> received a Connection Refused message. Which URL should I use to send a >>>> request to my webservice ? >>>> >>>> Regards, Stefan Lecho. >>>> >>>> >>>> Edell Nolan wrote: >>>> > >>>> > Hi, >>>> > >>>> > I can deploy your tutorial-sa with the following changes. >>>> > >>>> > (I had to change the location of the directories to be polled etc in >>>> the >>>> > file su >>>> > and change the locationURI in the cxf-bc to some server I could have >>>> > access >>>> > to) >>>> > >>>> > So if you change the following it should work for you >>>> > >>>> > In the tutorial-cxf-bc the xbean.xml should look like the following >>>> > >>>> > <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" >>>> > xmlns:dummy="urn://fsb.belgium.be/fphp/v3_0"> >>>> > >>>> > <cxfbc:provider >>>> > wsdl="classpath:PersonQuery.wsdl" >>>> > locationURI=" >>>> > https://e-depottest.smals-mvm.be/fphp/3.1/ws/PersonQuery.jws" >>>> > service="dummy:PersonQuery" >>>> > endpoint="PersonQuerySoap"/> >>>> > >>>> > </beans> >>>> > >>>> > The reason that it could not find the service definition is that it >>>> was >>>> > not >>>> > in the wsdl. >>>> > It will look for the service defined in the wsdl that you specify and >>>> the >>>> > service will take >>>> > the default target namespace defined there which was different to the >>>> one >>>> > you were specifying. >>>> > >>>> > Also in the tutorial-http-su - add in the namespace >>>> xmlns:dummy="urn:// >>>> > fsb.belgium.be/fphp/v3_0" >>>> > and have the service specified as dummy:PersonQuery. >>>> > >>>> > Hope this helps, Edell. >>>> > >>>> > >>>> > On Thu, Aug 21, 2008 at 11:27 AM, Edell Nolan <[EMAIL PROTECTED]> >>>> > wrote: >>>> > >>>> >> Hi, >>>> >> >>>> >> Can you send your complete xbean.xml files. >>>> >> >>>> >> Are you sure you have not defined >>>> >> >>>> http://www.credoc.be/<http://www.credoc.be/PersonQuery%7DPersonQuery>in >>>> >> any of your xbean.xml files. >>>> >> >>>> >> It looks to have the namespace defined incorrectly somewhere. >>>> >> >>>> >> Edell. >>>> >> >>>> >> >>>> >> On Wed, Aug 20, 2008 at 7:13 PM, stlecho <[EMAIL PROTECTED]> wrote: >>>> >> >>>> >>> >>>> >>> The credoc namespace is defined as "http://www.company.com". The >>>> leading >>>> >>> "/" >>>> >>> is a copy/paste error :o(. In the code I'm using >>>> >>> "jbi:service:http://www.company.com/PersonQueryIn". >>>> >>> >>>> >>> >>>> >>> Edell Nolan wrote: >>>> >>> > >>>> >>> > Hi, >>>> >>> > >>>> >>> > I am not sure that you need the starting '/' >>>> >>> > >>>> >>> > should this not be >>>> jbi:service:http://www.company.com/PersonQueryIn" >>>> >>> > >>>> >>> > from("jbi:service:/http://www.company.com/PersonQueryIn") >>>> >>> > .convertBodyTo(DOMSource. >>>> >>> >> >>>> >>> >> class) >>>> >>> >> .to(jbi:service:/http://www.company.com/PersonQuery); >>>> >>> >> >>>> >>> >> >>>> >>> > >>>> >>> > also what have you defined the credoc namespace to be. >>>> >>> > >>>> >>> > Edell. >>>> >>> > >>>> >>> > On Wed, Aug 20, 2008 at 4:44 PM, stlecho <[EMAIL PROTECTED]> >>>> wrote: >>>> >>> > >>>> >>> >> >>>> >>> >> Hi, >>>> >>> >> >>>> >>> >> I'm trying to use ServiceMix to make a call to an external >>>> >>> webservice, >>>> >>> >> but >>>> >>> >> I >>>> >>> >> have some difficulties in find the wright configuration. >>>> >>> >> >>>> >>> >> The WSDL used by the external webservice contains >>>> >>> >> <service name="PersonQuery"> >>>> >>> >> <port name="PersonQuerySoap" binding="s0:PersonQuerySoap"> >>>> >>> >> <soap:address >>>> >>> >> location="http://vilcanota:7002/fphp/3.1/ws/PersonQuery.jws"/> >>>> >>> >> </port> >>>> >>> >> </service> >>>> >>> >> >>>> >>> >> >>>> >>> >> Based on this WSDL definition, I've defined a cxfbc:provider >>>> with >>>> the >>>> >>> >> same >>>> >>> >> service and endpoint as defined in the WSDL. >>>> >>> >> <cxfbc:provider >>>> >>> >> >>>> >>> >> wsdl=" >>>> >>> https://e-depottest.smals-mvm.be/fphp/3.1/ws/PersonQuery.jws?WSDL=" >>>> >>> >> >>>> >>> >> locationURI=" >>>> >>> https://e-depottest.smals-mvm.be/fphp/3.1/ws/PersonQuery.jws" >>>> >>> >> service="credoc:PersonQuery" >>>> >>> >> endpoint="PersonQuerySoap" >>>> >>> >> /> >>>> >>> >> >>>> >>> >> I've defined a JMS consumer, so that my clients can use JMS to >>>> >>> connect >>>> >>> to >>>> >>> >> ServiceMix: >>>> >>> >> <jms:consumer >>>> >>> >> service="credoc:PersonQueryReceiver" >>>> >>> >> endpoint="jmsEndpoint" >>>> >>> >> targetService="credoc:PersonQueryIn" >>>> >>> >> destinationName="personquery.in" >>>> >>> >> connectionFactory="#connectionFactory"/> >>>> >>> >> >>>> >>> >> >>>> >>> >> I've defined a simple Camel router that forwards the incoming >>>> JMS >>>> >>> request >>>> >>> >> to >>>> >>> >> the cxfbc provider: >>>> >>> >> >>>> >>> >> from("jbi:service:/http://www.company.com/PersonQueryIn") >>>> >>> >> .convertBodyTo(DOMSource.class) >>>> >>> >> .to(jbi:service:/http://www.company.com/PersonQuery); >>>> >>> >> >>>> >>> >> When deploying this configuration, I'm receiving the following >>>> error: >>>> >>> >> >>>> >>> >>>> "<loc-message>org.apache.cxf.service.factory.ServiceConstructionException: >>>> >>> >> Could not find definition for service >>>> >>> >> >>>> >>> >>>> {http://www.credoc.be/PersonQuery}PersonQuery<http://www.credoc.be/PersonQuery%7DPersonQuery> >>>> <http://www.credoc.be/PersonQuery%7DPersonQuery> >>>> >>> <http://www.credoc.be/PersonQuery%7DPersonQuery> >>>> >>> >> .</loc-message>" >>>> >>> >> >>>> >>> >> I've tried several options, but without any success :o(. Where >>>> should >>>> >>> >> this >>>> >>> >> PersonQuery service be defined ? >>>> >>> >> >>>> >>> >> Regards, Stefan. >>>> >>> >> -- >>>> >>> >> View this message in context: >>>> >>> >> >>>> >>> >>>> http://www.nabble.com/Difficulty-in-configuring-external-webservice-call-tp19070587p19070587.html >>>> >>> >> Sent from the ServiceMix - User mailing list archive at >>>> Nabble.com. >>>> >>> >> >>>> >>> >> >>>> >>> > >>>> >>> > >>>> >>> >>>> >>> -- >>>> >>> View this message in context: >>>> >>> >>>> http://www.nabble.com/Difficulty-in-configuring-external-webservice-call-tp19070587p19075160.html >>>> >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>> >>> >>>> >>> >>>> >> >>>> > >>>> > >>>> >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/Difficulty-in-configuring-external-webservice-call-tp19070587p19091393.html >>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>> >>>> >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/Difficulty-in-configuring-external-webservice-call-tp19070587p19096224.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
