L.S.,The provider http:endpoint is used to make an external web service available to the ESB. So, in your case, there should an up-and-running web service on the url specified in the endpoint. Whether or not you create this endpoint, the WSDL should always have been available on that location beforehand. Have you tried invoking this webservice with e.g. the Eclipse webservices client or SoapUI client?
What confuses me, is the URL for your website, which suggests that you've also build you webservice using ServiceMix (it might just be a coincidence off course). If your service is already available in the ESB, there is no need to go through the HTTP endpoints to invoke it...
Gert Benamin wrote:
So, if you had a wsdl with the following namespace and service: <wsdl:definitions targetNamespace="http://tapestry.cgi.com/smix"> <wsdl:service name="NSRService"> a valid http provider would be : <beans xmlns:http="http://servicemix.apache.org/http/1.0" xmlns:sm="http://tapestry.cgi.com/smix"> <http:endpoint service="sm:NSRService" endpoint="myProvider"role="provider" locationURI="http://localhost:8192/NSRService/"soap="true" /> I can browse this wsdl at http://localhost:8192/NSRService/main.wsdl as expected. Yet, I get error with the following. Any ideas? ERROR - HttpComponent - Error processing exchange InOut[ id: ID:massive-64941-1180471881454-11:0 status: Active role: provider service: {http://tapestry.cgi.com/smix}NSRService endpoint: myProvider in: <?xml version="1.0" encoding="UTF-8"?><hello>Testing</hello> ] org.apache.commons.httpclient.NoHttpResponseException: The server localhost failed to respond at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1835) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) at org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:168) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) at java.lang.Thread.run(Thread.java:595) Gert Vanthienen wrote:L.S.,The namespace should match the target namespace of your wsdl and the service name should match the service defined in there as well.Gert Benamin wrote:I may be having a similar problem. So in that particular http provider, theservice should be service="test:BookService"? Gert Vanthienen wrote:Michael,One possible problem is the service name of your HTTP provider endpoint, which should match the name of the external web service you want to call. You can also use the same name on your consumer endpoint to obtain the pass-through behavior you describe, there's no need to use the targetService attribute there.I also think that you have to specify a real IP address or hostname. You can use the 0.0.0.0 on a consumer endpoint to specify that you want to bind to all networks your host is in, but here you'll have to specify localhost or 127.0.0.1.Regards, Gert Michael Mattox wrote:Help! I set up an http consumer & provider to pass through to an external webservice running under tomcat. I cannot for the life of me get it to work. Searching the mailing list shows the same error reported by other people but I do not find any solutions posted. I'm using 3.1.1-incubating. xbean.xml: <http:endpoint service="test:MyProviderService" endpoint="myProvider" role="provider" soapVersion="1.1" soap="true"locationURI="http://0.0.0.0:8080/test-business-service/services/BookService"/> <http:endpoint service="test:MyConsumerService" endpoint="myConsumer" targetService="test:MyProviderService" role="consumer" locationURI="http://0.0.0.0:8192/BookService/" defaultMep="http://www.w3.org/2004/08/wsdl/in-out" soapVersion="1.1" soap="true" /> web page result (http://ics030126:8192/BookService/?wsdl): HTTP ERROR: 404 Unable to find requested resource RequestURI=/BookService/main.wsdl Powered by Jetty:// in the servicemix log: 18:21:50,858 | DEBUG | btpool0-0 - Acceptor0 SelectChannelConnector @ 0.0.0.0:8192 | JettyContextManager | ntextManager$ThreadPoolWrapper 441 | Dispatching job: [EMAIL PROTECTED],io=0,w=true,b=0|0] 18:21:50,858 | DEBUG | btpool0-2 | ConsumerProcessor | p.processors.ConsumerProcessor 120 | Receiving HTTP request: GET /BookService/?wsdl HTTP/1.1 Host: ics030126:8192 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive 18:21:50,967 | DEBUG | btpool0-0 - Acceptor0 SelectChannelConnector @ 0.0.0.0:8192 | JettyContextManager | ntextManager$ThreadPoolWrapper 441 | Dispatching job: [EMAIL PROTECTED],io=1,w=true,b=0|0] 18:21:50,967 | DEBUG | btpool0-2 | ConsumerProcessor | p.processors.ConsumerProcessor 120 | Receiving HTTP request: GET /BookService/main.wsdl HTTP/1.1 Host: ics030126:8192 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive 18:21:50,967 | DEBUG | btpool0-2 | HttpComponent | e.servicemix.soap.SoapEndpoint 276 | Retrieving proxied endpoint definition 18:21:50,967 | DEBUG | btpool0-2 | HttpComponent | icemix.common.DefaultComponent 79 | Querying service description forServiceEndpoint[service={http://servicemix.apache.org/service}MyProviderService,endpoint=myProvider]18:21:50,967 | DEBUG | btpool0-2 | HttpComponent | icemix.common.DefaultComponent 87 | No description found for {http://servicemix.apache.org/service}MyProviderService:myProvider I'm completely blocked by this, quite embarrassingly so in front of my client! If anyone can tell me how to get past this I'd be very grateful. I'm trying to build a proof of concept for a new project. Thanks, Michael
