Question
· Jun 26

Struggling with SOAP web-service permissions/plumbing

I am attempting to follow the tutorial at Publishing Web Services Using Caché | Caché Web Services QuickStart Tutorial | Caché & Ensemble 2018.1.4 – 2018.1.11 to build a toy SOAP web-service using Cache but am running into what I suspect are permissions issues, or perhaps setting up the "plumbing" to get an incoming request to call the web-service methods.

Ensemble instance running on local laptop. Only the Ensemble private web-server installed on the machine (no IIS or Apache).

Working through the tutorial, when I get to testing the service using the terminal (Testing the Service from the Terminal | Caché Web Services QuickStart Tutorial | Caché & Ensemble 2018.1.4 – 2018.1.11), I get an error:

I don't really understand what this is telling me, or what to try. 

And as the tutorial pages appear to contain erroneous content, its hard to be confident about what to try - on the page about testing the web-service from the terminal, I'm pretty sure the class name highlighted below should, in context, be "SOAPTutorial.SOAPService"... (And the tutorial isn't very clear about namespaces - to run the client.Test() method as described below, you have to be in the same namespace as the web-service code - earlier it says something like "in any namespace....")

I have tried:

  • attempting to visit the web-service via a URL generated from the namespace + class name using a browser gives this:
  • adding a web application /colintest1/ that should be pointing to the classes above, and then visiting the web-service via a URL incorporating the web-application name:
  • http://localhost:57772/colintest1/SOAPTutorial.SOAPService.cls gives the same error as above ("An error occurred with the CSP application....") The web-application is configured as: There's a role WS_Role configured to give permission to read and write to the database for the WEBSERVICES namespace: with member "UnknownUser", and a Resource WebServices - not confident all this is properly set up...nor sure that this is the issue!
  • visiting http://localhost:57772/colintest1/ gives: 
  • adding things to the ^SYS global in the %SYS namespace:     set ^SYS("Security","CSP","AllowClass","/csp/webservices/","%SOAP.WebServiceInfo")=1     set ^SYS("Security","CSP","AllowClass","/csp/webservices/","%SOAP.WebServiceInvoke")=1 or     set ^SYS("Security","CSP","AllowClass","/colintest1/","%SOAP.WebServiceInfo")=1     set ^SYS("Security","CSP","AllowClass","/colintest1/","%SOAP.WebServiceInvoke")=1 Does not make any difference to the previously observed behaviour.

Finally, here's the current state of the code in the web-service class - the request isn't making it as far as this as far as I can see!

FWIW, looking at the CSP Gateway HTTP Trace doesn't help much - can see some of the from a browser requests hitting the gateway, and the "An error occurred" page being presented in response, but no other illuminating information about why the error occurred! eg

Product version: Caché 2018.1
$ZV: Cache for Windows (x86-64) 2018.1 (Build 184U) Wed Sep 19 2018 09:09:22 EDT
Discussion (1)2
Log in or sign up to continue