I have a hypothetical request to pull in 3 data fields into an orchestration but only via a web service.
how can I do this with biztalk?
thanks
As #Tim has mentioned, the WCF Publishing Wizard is a good starting point.
Overview:
http://msdn.microsoft.com/en-us/library/bb226350
More here : http://msdn.microsoft.com/en-us/library/bb226564.aspx
A couple of notes:
You'll need to build and deploy your BTS project to a dev environment before you publish.
Make sure that when you publish you deploy to an app pool with the same user as the BizTalk Isolated host.
You don't actually need IIS / WAS to host the service - Biztalk can self host with e.g. WCF-Custom. So you can avoid the Isolated host in your production environment and turn off IIS entirely. This has performance and resource benefits.
Note that you may need to open up permissions for BizTalk to listen see here or here
Publishing and 'refreshing' the WSDL in a dev environment so that peer systems can create proxies etc can be a pain. After using the publishing wizard, you can use this tool to refresh your WSDL publication without having to redo the wizard.
http://www.microsoft.com/en-us/download/details.aspx?id=21973
Use the "BizTalk WCF Service Publishing Wizard". It will walk you through all the steps you need.
Related
I have a composite with a SOAP web service entry point running on SOA Suite. We will have a new client for that web service, but this client cannot speak SOAP, so we will have to publish that entry point on a REST endpoint. I know I can enable REST Support to the existing web service through EM console, but I would like to have this configuration enabled by default after deploy.
My research for ways to do that using a property or attribute on a configuration plan did not get useful informations.
Does anyone know how could I achieve that?
Thanks!
REST Support is formal part of SOA Suite 12c. Download and install that and then you can easily add a REST interface to a SOAP composite. Also, 12c now installs without RCU/DB, etc - just start the Integrated WLS domain in JDev and it builds itself and you are up and deploying in under 20 mins. And this may help.
How do you put web services into maintenance mode?
I've tried the app_offline.htm, doesn't seem to work well for web services. Does work for web site though.
app_offline.htm worked fine for web sites, but not for web service. When I called an web service function via code that's supposedly under maintenance (put the app_offline.htm under the root directory of the IIS web service), I still got the proper response as usual.
Ideally I would like the web service that's under maintenance to return to me a message like "under maintenance".
You can edit your Global.asax as suggested by this answer to another question. Then trigger it by setting a flag when you are in maintenance mode
In my opinion, when a service is unavailable, you should respond with a 503 Service Unavailable status; but you can do anything you like with the response.
Create a utility function for your web services, which checks for the presence of app_offline.htm at your website's root path, and responds accordingly.
Note that if you wanted to get fancy with it, you could use a part of the WCF pipeline (assuming you're using WCF and not the legacy .ASMX services) to modify your services/methods by using an attribute (eg, this method).
I am using Axis2 (1.5.3 currently) and Tomcat (6.0.26 currently) and am running a web service. I would like to also host HTML pages for configuring the web service.
What is the best way to go about this? I assume keeping the same context is key, but perhaps it is not.
My current distribution is located under a folder structure similar to this:
Tomcat/webapps/mycompany
With the actual service code here:
Tomcat/webapps/mycompany/WEB-INF/services/myService
In a browser, I can hit my web service by going to here:
/mycompany/services/myService
I note that I can drop actual HTML files in this path and Tomcat will, indeed serve them up.
For instance, if I put "index.html" under Tomcat/webapps/mycompany, I can navigate to /mycompany/index.html and see my html.
What I want to do is have this HTML be attached to JAR/class files that can interact with the already-existing service class files in the same context as the service. Therefore, I can have the browser configure the web service directly.
Is this possible, and is there a tutorial or something out there that will help me with this? Note that I have been working with Tomcat and Axis2 for a while now for this particular web service, but I have never actually deployed a web application/html using Tomcat before.
Thanks.
First of all what do you mean by a configuring a service. Normally in SOA world services are analogous to interfaces. IMHO you can just change a service, since their are other users that rely on the services you are exposing.
If i want to change a service i would rather introduce a new version of the service after deprecating the existing one.
Are you talking about applying QoS to existing serviecs. Then that makes sense.
Anyway, If you want to have a web-app alongside with axis2 service engine, it is possible. If you look inside the axis2 war file you'll find the web.xml entry to Axis2Servlet. It is this servlet that serves the web services requests.
So, what you need is the Axis2Servlet mapping in your web-app along with your usual servlet-mappings. Number of possible ways to configure your services using web-app files. One options is to use web-services call itself to (with authentication) to configure it.
By "configure a service", take this example:
The service has a set of datasets.
Each dataset exists in a separate database.
The service can manage 0..n datasets.
The service must be configured to know about each dataset.
This is what I'm configuring. I'm not trying to configure Axis itself or redefine the service.
I would like to host the HTML using the same instance of Tomcat that I'm hosting the web service with. It needs to manage sessions, have login capability, an whatnot, and has to be able to configure the web service live.
From what I'm reading, it's probably best to make an interface to the web service that the web application module can call into from a different context.
Is there a better way?
There are a number of teams who have deployed applications to a shared Weblogic application server. There has been some effort to maintain a registry but it hasn't been kept up to date. How can you programmatically discover all the web services deployed to a server and retrieve their WSDL?
Interactively, from the console, you can navigate to Deployments->Monitoring->Web Services and then enable the URI field, which is hidden by default. From this list, I can construct the WSDL: [host]:[port][URI]?WSDL
I think it is doable using JMX and have been playing with the WLST shell. The "listApplications()" command gives a list of the application names, but its not clear how to get more information.
I am using WCF for the first time. I Have successfully created the service and it works fine on my local machine. I want to know the steps involved for deploying the service to the client environment (including changes to the config file, IIS settings) and any other miscellaneous settings.
http://msdn.microsoft.com/en-us/library/aa751792.aspx
There you go - the how to from Microsoft
Right click the service project in VS, select Copy Website.
Specify the IIS path. (may need to connect)
Moves / sync all files.
You can also deploy a WCF service to a windows service host. This is desirable in many situations which are outlined here:
IIS WCF service hosting vs Windows Service