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:
.png)
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....")
.png)
I have tried:
- attempting to visit the web-service via a URL generated from the namespace + class name using a browser gives this:
.png)
- 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: .png)
- 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!
.png)
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
.png)