Hi again, I'm still having some trouble. It seems I either have the choice of proxy support (from 3.3-SNAPSHOT) or the promised (but untested) ability to have soapActions forwarded through to the external service. Is there anyway I can have both? Proxy support for the servicemix-http (via jmx consolse configuration) is available in 3.2.2 why is it no available in 3.2.3?
Also I have been able to find a method of storing then providing the wsdl from the conusmer. I have found two versions that work, both storing a modified wsdl file as a resource in the consumer <http:endpoint/> and using the wsdResource property. The wsdl I have stored here has to be modified and the modifications need to be either: - Remove all services and bindings. Also remove all porttypes aside from the soap porttype. - Remove all services aside from the soap one and set its service/portname to match the service/endpoint. When I do either of these I am able to add ?wsdl to the endpoint url and fetch a wsdl file. However in both cases the bindings are lost, losing the soapAction information along with other parts of the binding information. Even if I leave the binding in the file servicemix appears to remove it and replace it with a very minimal one that is not able to be used for my requirements. Is there a way to prevent this modificaiton? Thanks for your help so far, Cheers, Lyall. -----Original Message----- From: Guillaume Nodet [mailto:[EMAIL PROTECTED] Sent: Tuesday, 26 August 2008 5:53 PM To: [email protected] Subject: [JUNK]Re: Soap action and wsdl forwarding. Proxy support for the <http:provider/> and <http:soap-provider/> endpoints is available since yesterday. You need to download / build the latest components (or grab a snapshot of 3.3) and use the following: <http:provider proxyHost="xxx" proxyPort="80" ... On Tue, Aug 26, 2008 at 8:00 AM, Ward, Lyall <[EMAIL PROTECTED]> wrote: > 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> >> >> >> > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/
