What is a "Business Server"?

You shouldn't specify Dispatch Class -it's for REST only.

Maybe add ?CfgItem=Weather to URL.

EnsLib.SOAP.GenericService is a generic service and it does not implement actual services, such as weather but send the request to actual business host -  "Weather BO" in your case.

Your original URL is correct as it references business host name instead of class name

jQuery is a library - a big collection of "classes" and methods you can use anywhere. It makes no assumptions about how your application is built, has no internal DOM tree representation, etc.

Angular JS is an MVC framework - it forces your application to be structured in a very specific way, it manipulates DOM tree of the page according to specified rules. And well, it also provides a big collection of "classes" and methods you can use in your the code, but only the in parts you wrote in compliance with Angular architecture (scopes/controllers/services).

Do you have a call to CreateBusinessService somewhere in your code? It allows doing business service calls from non-Ensebble context (by well making current job Ensemble job). It's called like this (from Demo.ZenService.Zen.WeatherReportForm):
 

Set tSC=##class(Ens.Director).CreateBusinessService("Zen Service",.tService)

Where first arguments is a host name of a business service. In your case the error appeared because the first argument is equal to EnsLib.SOAP.GenericService which is not present in currently running Ensemble production. You need to do one of the:

  • Check that you're running a correct production
  • Change first argument of CreateBusinessService method from EnsLib.SOAP.GenericService to something that exists in current production
  • Create business service in production with the name EnsLib.SOAP.GenericService