| Author |
Call External Web Service.
|
|
| Perry Molendijk 2005-04-18, 5:50 pm |
| We have been at this one for quite a number of days now and although we
are very close to get this working we can't quite get there.
We need to send a message using a SOAP Send Port to an external web
service but with the following obstacles:
1. The url of the web service is longer than 256 characters - this
requires the use of a proxy because the BT does not support URLs longer
than 256 characters.
2. The XML schema defines a ComplexType with maxOccurs="UNBOUNDED" which
is not supported by BT either.
So far we have tried:
wsdl.exe to create a proxy but the code is generates is not
complete/incorrect.
wsewsdl2.exe to create the proxy (wsewsdl2 comes with the WSE 2.0
toolkit). The code is fine and we have managed to send a message but we
somehow can't find a way to add Basic Authentication parameters in the
proxy file. WseWsdl2.exe creates a proxy using SoapClient.
This would do http://username:password@wsServer.com but doesn't work; we
need to add a username and password to the HTTPRequest.
Attached are the WSDL and the proxy files generated by wsdl.exe and
wsewsdl2.exe. Any help or suggestions would be greatly appreciated.
Regards,
Perry Molendijk
| |
| Jon Flanders[MVP] 2005-04-18, 5:50 pm |
| Question related to #1 - what part of the url is especially long? if it is
the DNS name - you could munge your hosts file and maybe get around the 256
character limit that way (again just another work around but it avoids the
proxy).
Relating to #2 - you might want to try to use the HTTP send adapter instead.
To do this you have to wrap the outgoing schema in the SOAP envelope with a
map (or with a .NET method).
Also you have to put the SOAPAction header into the message context with a
custom pipeline component.
Let me know if you want to go this route I can provide an example.
--
Jon Flanders
http://www.masteringbiztalk.com/blogs/jon/
"Perry Molendijk" <inflexions@westnet.com.au> wrote in message
news:4263ceec$1@quokka.wn.com.au...
> We have been at this one for quite a number of days now and although we
> are very close to get this working we can't quite get there.
>
> We need to send a message using a SOAP Send Port to an external web
> service but with the following obstacles:
>
> 1. The url of the web service is longer than 256 characters - this
> requires the use of a proxy because the BT does not support URLs longer
> than 256 characters.
>
> 2. The XML schema defines a ComplexType with maxOccurs="UNBOUNDED" which
> is not supported by BT either.
>
> So far we have tried:
>
> wsdl.exe to create a proxy but the code is generates is not
> complete/incorrect.
>
> wsewsdl2.exe to create the proxy (wsewsdl2 comes with the WSE 2.0
> toolkit). The code is fine and we have managed to send a message but we
> somehow can't find a way to add Basic Authentication parameters in the
> proxy file. WseWsdl2.exe creates a proxy using SoapClient.
> This would do http://username:password@wsServer.com but doesn't work; we
> need to add a username and password to the HTTPRequest.
>
> Attached are the WSDL and the proxy files generated by wsdl.exe and
> wsewsdl2.exe. Any help or suggestions would be greatly appreciated.
>
> Regards,
>
> Perry Molendijk
| |
| Perry Molendijk 2005-04-18, 5:50 pm |
| #1 The length of the is in the parameters at the end. The Web Service is
generated by SAP XI and the URL contains a large number of parameters.
#2 If using the HTTP adapter is an option I would love to have your example.
Regards,
Perry
Jon Flanders[MVP] wrote:
> Question related to #1 - what part of the url is especially long? if it is
> the DNS name - you could munge your hosts file and maybe get around the 256
> character limit that way (again just another work around but it avoids the
> proxy).
>
> Relating to #2 - you might want to try to use the HTTP send adapter instead.
>
> To do this you have to wrap the outgoing schema in the SOAP envelope with a
> map (or with a .NET method).
>
> Also you have to put the SOAPAction header into the message context with a
> custom pipeline component.
>
> Let me know if you want to go this route I can provide an example.
>
| |
|
| Jon,
Would it be possible to get a copy of the example.
I have a similar situation where I need to provide a HTTP Authorization
header on a SOAP request to a webservice. I haven't found any way to do this
yet (and I have tried many things). Using an HTTP adapter would work out
great.
Thanks in advance...
"Jon Flanders[MVP]" wrote:
> Question related to #1 - what part of the url is especially long? if it is
> the DNS name - you could munge your hosts file and maybe get around the 256
> character limit that way (again just another work around but it avoids the
> proxy).
>
> Relating to #2 - you might want to try to use the HTTP send adapter instead.
>
> To do this you have to wrap the outgoing schema in the SOAP envelope with a
> map (or with a .NET method).
>
> Also you have to put the SOAPAction header into the message context with a
> custom pipeline component.
>
> Let me know if you want to go this route I can provide an example.
>
> --
> Jon Flanders
> http://www.masteringbiztalk.com/blogs/jon/
>
> "Perry Molendijk" <inflexions@westnet.com.au> wrote in message
> news:4263ceec$1@quokka.wn.com.au...
>
>
>
|
|
|
|