I am writing a biztalk orchestration that will need to call a web service, probably multiple web services, and probably more than once. I see two options before me; one, consume the wsdl in a separate code project, and call the web services from code in an expression shape, and two, consume it from Biz, get schemas, etc and call through request/response ports. What is the best practice here? On the one hand, if the wsdl is updated it will be easier to update the code than the schemas and ports, and it seems like a lot of clutter and work to build ports enough for multiple web service calls. On the other hand, all the tuning you can do at the port level(retries being one) makes it robust to call web service.
相关问题
- Is the Namespace for a SOAP Web Service case sensi
- How can I send parameters for ASP.NET webservice
- Http post request to a Django webservice (need log
- Sending Data to server using Jsoup Android
- WCF MessageContract wrapping and lists
相关文章
- Using JAX-WS 2.2.5 client with JDK/JRE 1.5
- Cannot use org.jvnet.jax-ws-commons.jaxws-maven-pl
- How to create base64Binary data?
- Are there any public UDDI registries available?
- REST search interface and the idempotency of GET
- Add Service Reference and Add Web Reference?
- Rest Web services returning a 404
- Protect Web API from unauthorized applications
Interestingly, you can have a mixture of both infact. Check this out by Saravana Kumar!!!
It uses passthrough receive and consumes a webservice using the dll on the send port, without going through the pain of creating schemas and webports.
This gives all the power of Biztalk ( routing response, send port configuration, etc) and still the flexibility to change the schema without much fuss.
Also see this question here, which discusses a 3rd option, viz using
add service reference
in BizTalk as an alternative method to import XSD's.IMO you would be defeating the point of using BizTalk by using .NET proxies to handle integration. For example:
serviceModel
config settings, such as the endpoint etc? i.e. You've lost the flexibility of binding files.So, TL;DR Always use the WCF adapters in BizTalk
However, that said, am in agreement that updating generated items if the consumed service changes can be messy. FWIW, we mitigate some of this as follows:
Unfortunately this leaves the below actions which still need to be manually applied:
public
if the artifacts are in a separate assembly to your orchestrations<xs:annotation>
section of the schma.