Talking to External inDesign server with ColdFusion

In the previous post I wrote about how to connect to inDesign web services using ColdFusion. But if your inDesign server is running on a different IP from your ColdFusion server, you might get an error:

Cannot perform web service invocation runScript.

ColdFusion gives you this message not because your network administrator blocked the port 18383, you know it’s open because you can access http://my-indesign-server-ip-goes-here:18383/service?wsdl from the ColdFusion box. Also, there’s nothing wrong with your ColdFusion code, because you just copied and pasted it from my previous post and only updated the InDesign server URL, in CFOBJECT webservice argument. So, why?

You get this message because inDesign server’s web service engine is nothing to tweet home about. It could not accept requests from external IPs. Now here is the workaround:

  1. Install a web server (IIS would do), in your inDesign server box.
  2. Download inDesign server SDK relevant to your inDesign server and unzip it.
  3. Open the file IDSP.wsdl (in the folder : \docs\references) with the text editor and find the line <SOAP:address location="http://localhost:80"/> and replace the localhost with your inDesign server’s IP address or domain name and the port. Let’s say your inDesign server’s IP address is 192.168.1.100 and inDesign instance is running on port 18383, then this line should be <SOAP:address location="http://192.168.1.100:18383"/>.
  4. Copy the file into your web server folder. Now your ColdFusion box can access http://my-indesign-server-ip-goes-here/IDSP.wsdl. Use this URL as your webservice.

   1: <cfobject
   2:     name         = "ind"
   3:     webservice = "http://my-indesign-server-ip-goes-here/IDSP.wsdl"
   4:     type            = "webservice">
Show/Hide Line Numbers . Full Screen . Plain

That’s it. Now your ColdFusion box can connect to your InDesign server. Have fun. Lots of it.

3 Comments :
Nathan
Tuesday 16 October 2012 10:21 PM
Hi,

Thanks for your tutorials they helped me to get IDS running via CF to begin with.

Now i am trying to do as this post suggests and trying to get this to work in apache but its not working... does something else have to be modified in apache to get this to work ?
Nathan
Tuesday 16 October 2012 10:27 PM
Sorry worked it out... The scripts have to be installed locally on the IDS box.... is there a way for this not to be the case ? ie. The scripts are sent from the CF web box via the soap request so as to not require local versions of the scripts that need to be installed and updated on each IDS box ?
Wednesday 17 October 2012 03:46 AM
No, You don't have to save script in the local box. You can directly send it into IND server WS. I did not tested with apache, but i do not think that should be an issue. did you tried IND service restart?