Gert, Thank you for your reply, I am still having trouble.
I have changed my provider to match the wsdl service/endpoint nameing. ### new provider xbean.xml <?xml version='1.0' encoding='UTF-8'?> <beans xmlns:http='http://servicemix.apache.org/http/1.0' xmlns:svcns='http://www.webserviceX.NET'> <http:soap-provider service='svcns:UKLocation' endpoint='UKLocationSoap' locationURI='http://www.webservicex.com/uklocation.asmx' wsdl='http://www.webservicex.com/uklocation.asmx?WSDL' validateWsdl="false" useJbiWrapper="false" /> </beans> I've also upgraded to apache-servicemix-3.2.3-20080825.225502-19 and switched my provider to a <http:soap-provider/> as you suggested. Service assembly compiles and deploys fine, however it still fails to discover the wsdl from the provider. Show the folloing in the debug ### Debug DEBUG - ConsumerProcessor - Receiving HTTP request: GET /ukLocation-3700af92-6ef7-4a42-9d61-4d241515f715/main.wsdl HTTP/1.1 Host: bned50077171a.dhcp.bne.sap.corp:8192 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai n;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-gb,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 DEBUG - HttpComponent - Retrieving proxied endpoint definition DEBUG - EIPComponent - Querying service description for ServiceEndpoint[service={http://www.webserviceX.NET}wireTap,endpoint=370 0af92-6ef7-4a42-9d61-4d241515f715] DEBUG - HttpComponent - PortType for targetService/targetEndpoint could not be found It does not appear to have tried to get the wsdl from the provider at all now. Finally the assembly no longer works as it appears the <http:soap-provider/> is not using the proxy settings which I have given the servicemix-http component which are required for me to access the external service. I'm unsure if the saopaction code is working or not because of this. Thanks, Lyall. -----Original Message----- From: Gert Vanthienen [mailto:[EMAIL PROTECTED] Sent: Friday, 22 August 2008 3:03 PM To: [email protected] Subject: [JUNK]Re: Soap action and wsdl forwarding. Lyall, If the information can not be retrieved from the WSDL, this usually means that there is a mismatch between the service/endpoint name and the service/port names in the wsdl. The two should match for the http:endpoint to find what it needs. For the SOAPAction, could you try replacing your <http:endpoint/> with <http:soap-provider/> with a ServiceMix 3.2.3-SNAPSHOT (available at http://people.apache.org/repo/m2-snapshot-repository/org/apache/servicem ix/apache-servicemix/3.2.3-SNAPSHOT/). I have just yesterday committed a few fixes that might get this issue resolved. Regards, Gert Ward, Lyall wrote: > Hi, > > I am attempting to setup what appears to be a very simple web service > proxy using servicemix. I'm using servicemix version 3.2.2 standalone > (though eventually tomcat integration would be nice) on jvm 1.5.0_14_b03 > on windows vista. The configuration I am attempting to use is using > consumer and provider binding component with a wiretap in the middle > sending a copy of the message to a metering engine. > > I have a configuration of these component that works for forwarding the > soap requests to the external service and causing the metering to be > executed. However there are 2 issues I've not been able to solve. > > I am unable to use the enpoint I created to provide the wsdl file of the > service, and I am unable to have the soapaction header from the original > request forwarded to the external service. I have worked around this > with a static definition of the soap action, but for services that > provide multiple methods this will not work and it is not desireable to > have a provider binding component for each method. > > When I deploy the component and also when I attempt to fetch the wsdl I > can see an http component attempting to access the wsdl (appears that > way to me at least) but with no success, the debug is as follows. > > Is there something in the defintion of the components I am missing? I > have a binding component and jsr181 service assembly also and the wsdl > generation and fetching automaticlly works in that case. > > Thanks in advance, > Lyall. > > ### on startup of the provier > DEBUG - HttpComponent - Port for service/endpoint could > not be found > > ### on request of the wsdl > DEBUG - ConsumerProcessor - Receiving HTTP request: GET > /UKLocation/main.wsdl HTTP/1.1 > Host: mymachine.network.com:8192 > User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.16) > Gecko/20080702 Firefox/2.0.0.16 > Accept: > text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai > n;q=0.8,image/png,*/*;q=0.5 > Accept-Language: en-gb,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 > > > DEBUG - HttpComponent - Retrieving proxied endpoint > definition > DEBUG - EIPComponent - Querying service description > for > ServiceEndpoint[service={http://www.webserviceX.NET}wireTap,endpoint=end > point] > DEBUG - EIPComponent - No description found for > {http://www.webserviceX.NET}wireTap:endpoint > DEBUG - JettyContextManager - Dispatching job: > [EMAIL PROTECTED],io=1,w=true,b=false|false] > DEBUG - JettyContextManager - Dispatching job: > [EMAIL PROTECTED],io=1,w=true,b=false|false] > > > ### CONSUMER XBEAN.XML > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns:http="http://servicemix.apache.org/http/1.0" > xmlns:ukl="http://www.webserviceX.NET"> > > <http:endpoint service="ukl:UKLocationIn" > endpoint="soap" > targetService="ukl:wireTap" > targetEndpoint="endpoint" > locationURI="http://0.0.0.0:8192/UKLocation/" > defaultMep="http://www.w3.org/2004/08/wsdl/in-out" > role="consumer" > soap="true" > /> > </beans> > > ### WIRE TAP XBEAN.XML > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns:eip="http://servicemix.apache.org/eip/1.0" > xmlns:ukl="http://www.webserviceX.NET"> > > <eip:wire-tap service="ukl:wireTap" endpoint="endpoint"> > <eip:target> > <eip:exchange-target service="ukl:UKLocation" endpoint="Soap"/> > </eip:target> > <eip:inListener> > <eip:exchange-target service="ukl:events" endpoint="endpoint" /> > </eip:inListener> > </eip:wire-tap> > > </beans> > > ### PROVIDER XBEAN.XML > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns:http="http://servicemix.apache.org/http/1.0" > xmlns:ukl="http://www.webserviceX.NET"> > <http:endpoint service="ukl:UKLocation" > endpoint="Soap" > role="provider" > soapAction="http://www.webserviceX.NET/ValidateUKAddress" > locationURI="http://www.webservicex.com/uklocation.asmx" > defaultMep="http://www.w3.org/2004/08/wsdl/in-out" > soap="true" > soapVersion="1.1" > > wsdlResource="http://www.webservicex.net/uklocation.asmx?wsdl" > /> > </beans> > > >
