Author |
Message
|
wese345 |
Posted: Sun Dec 29, 2013 10:40 pm Post subject: how to visit webservice by wsdl dynamically |
|
|
Novice
Joined: 05 Aug 2013 Posts: 21
|
Hi,guys
We have the requirement that use WMB to perform webservice request to get data, which means dynamically call webservice using WSDL. Each WSDL has a different content,such as method name,parameters and URL etc.
So far I have no idea of how to design the message flow. Every WSDL generate a message definition is not possible.
So anyone who has a solution please give me a sign. I really don't kown how to do...  |
|
Back to top |
|
 |
Simbu |
Posted: Sun Dec 29, 2013 10:52 pm Post subject: |
|
|
 Master
Joined: 17 Jun 2011 Posts: 289 Location: Tamil Nadu, India
|
Hi, have you considered EndPointLookup node for this?
if you want to sticky validate the req/res then you have to generate message model from WSDL and use it. |
|
Back to top |
|
 |
smdavies99 |
Posted: Sun Dec 29, 2013 11:03 pm Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Simbu wrote: |
Hi, have you considered EndPointLookup node for this?
if you want to sticky validate the req/res then you have to generate message model from WSDL and use it. |
The use of the EndPointLookup Nodes requires the use of WSRR. This is not always there (costs $$$$). It also requires you to use those pesky message definitions you don't want (all bound up in the WSDL usually).
Back to the requirement. To sum up, I see it as the following
1) you have to use a number of Webservices to get some data.
2) You do know the message structure because otherwise how would you know how to make the request and to what message type to use/endpoint to use.
3) You don't want to (or can't be bothered) to create message definitions for all these different webservices.
One of the keystones of using webservices is that the WSDL and accompanying xsd's define (in all its gory detail) the CONTRACT between you and the WebService.
Don't you want to know if someone has made a change at the WebService end that will break your flow?
If you don't have a message definition how can you be sure that this is not the case when your flow fails for some mysterious reason?
Please reconsider not creating message definitions. Doing so will save you a lot of pain and anguish in the long run.
Then I'd probably make a subflow that does all the work for a particular webservice. Easily testable on its own. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
wese345 |
Posted: Mon Dec 30, 2013 12:58 am Post subject: |
|
|
Novice
Joined: 05 Aug 2013 Posts: 21
|
Simbu and smdavies99, thanks for your reply.
Quote: |
One of the keystones of using webservices is that the WSDL and accompanying xsd's define (in all its gory detail) the CONTRACT between you and the WebService.
Don't you want to know if someone has made a change at the WebService end that will break your flow?
If you don't have a message definition how can you be sure that this is not the case when your flow fails for some mysterious reason? |
So considering these, I have to generate message definition using WSDL. If someone changes the service then I must generate the definition file and redeploy?
Is there a way that creating a common message definition to do this?
Afterall regenerating and redeploying may effect our system in many places. |
|
Back to top |
|
 |
smdavies99 |
Posted: Mon Dec 30, 2013 1:18 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
wese345 wrote: |
So considering these, I have to generate message definition using WSDL. If someone changes the service then I must generate the definition file and redeploy?
Is there a way that creating a common message definition to do this?
Afterall regenerating and redeploying may effect our system in many places. |
Yes. In my experience once the design has settled down changes are rare. you could even get a version coded into the WSDL call so that you can run multiple versions. This does require that BOTH ends understand this. This has the advantage that where there are multiple uses of a service they don't all have to upgrade at the same time.
Remember that changes to the WSDL (and the associated schemas) are changes to the CONTRACT and should not happen without the agreement of all parties. If you are a consumer of the Webservice and someone changes the webservice without warning then you have a legitimate case again the webservice provider for breach of contract.
Many companies run both versions of their services alongside each other for a time just to allow their consumers to catch up. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Dec 30, 2013 4:12 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You call a Web Service using the SOAPRequest node.
This can, or can not, make use of a WSDL.
It's *much* *much* better to make use of a WSDL than not.
Whether or not you use the WSDL, you have to build the message that matches the WSDL.
Every conversation has two sides. Every integration is a conversation, usually a very very short one. I can't ask you a question in Latin and expect a response in German, if neither of us speak Latin or German. |
|
Back to top |
|
 |
|