Relocating service defined by WSDL 5 Months, 1 Week ago
Karma: 0
Hi, I have a service defined as a Web Service. What is the best way to define the location of that service (ip address and port etc)? Is the only way to define it inside WSDL file?
Also, if my service is moved to another server how should I define it to the process that has already been deployed? Is the only way to change the WSDL file and re-deploy the process?
I think you should open a D3 project regarding the deployment to different environments. We will then offer different environments for people to deploy to.
Regarding WSDL in general, that is a good question. With 5.2 you can dynamically change the end point in the request mapper (you need to remove the filter to see it appear in the target tree).
Re:Relocating service defined by WSDL 3 Months, 2 Weeks ago
Karma: 0
Hi, I just want to make this clear to me.
1. Is it so that there are no methods to change the service end point after it has been deployed? For example, if the process is deployed to another server later then the new end point must be changed by the Designer.
2. Is it so that data in deploy.xml cannot be accessed by the process. (There are no 'business parameters' and every 'constants' used in the process must be changed by the Designer).
These questions are very important to us because our customer is more or less responsible of the deployment and we do not necessarily know the final production environment.
Re:Relocating service defined by WSDL 3 Months, 2 Weeks ago
Karma: 5
1. True. If you use a static endpoint, then you can not change it after deployment
2. True , no way to access the deploy.xml.
But you still can do what you need.
With 5.2 we have introduced what we call "dynamic endpoints", which allows you to specify the endpoint of your service during execution.
All you need to do is, get during the execution the new url of the webservices you want to call.
One way to cto do it is to use the database connector : create a table with one row that contains the endpoint of your webservice.Use the database connector to retrieve the endpoint from the database, and use dynamic Endpoints to call the webservice with the new endpoint.
You can also create a webservice that provides you with the new endpoint. I hope this helps.
P.S: To specify a dynamic endpoint for a service , click on the invoking task and open the mapper view, and disable the option "hide endpoint" in the mapper filter ( the green arrow). you will see an "endpoint" node, that you can use to set the endpoint of your WS.
Hi, ok, from now on I will use database instead of config files. That's fine by me.
However, I tried that dynamic endpoint by setting a hard-coded value in the mapper but it failed. I did not touch the wsdl file. Without this new mapping the service call is ok. I added a screen shot of the mapper view as an attachment.
The string value I used is excatly the value Axis shows on the available services page. The same string is written to the wsdl file too. And the service is responding too as mentioned if I do not use the dynamic endpoint.
Should I convert the string to some other type and how is this done? I tried some of those 'Functions on String Values' without success.
Regards, Ilpo Kejonen
ps. The error message is
13:35:09,356 ERROR [INVOKE] Failure during invoke: Error sending message (mex={PartnerRoleMex#425993 [PID {http://example.com/TestEjbInterface/TestEjbInterface}TestEjbInterface-12] calling
(...)}): The system cannot infer the transport information from 13:35:39,419 ERROR [WebServiceInvocationRequestProcessor] Error processing XML request