Ensemble 2014.1.5 - Soap Business Service -ERROR <Ens>ErrBusinessDispatchNameNotRegistered: Business dispatch name 'EnsLib.SOAP.GenericService'
I am following the ESB tutorial(https://learning.intersystems.com/course/view.php?id=77) and using my local system(2014.1.5) windows 7. I click the button on SoapUI for the Weather piece (http://127.0.0.1:57774/esb/soap/Weather/GlobalWeather.asmx) and get the response of <text>ERROR <Ens>ErrBusinessDispatchNameNotRegistered: Business dispatch name 'EnsLib.SOAP.GenericService' is not registered to run</text>
checked the Event Log :
ID: | 116 |
Type: | Error |
Text: | ERROR <Ens>ErrBusinessDispatchNameNotRegistered: Business dispatch name 'EnsLib.SOAP.GenericService' is not registered to run |
Logged: | 2017-02-03 12:38:51.844 |
Source: | (none) |
Session: | (none) |
Job: | 12380 |
Class: | Ens.Director |
Method: | CreateBusinessService |
Trace: | (none) |
Stack: |
I checked the namespace for DispatchName and found: ^Ens.Runtime("DispatchName","Ens.Alarm")="Ens.Alarm" Can someone give me pointers on where to look for configuration issues? |
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):
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:
Thank you Eduard, I didn't find any code called for CreateBusinessService.
The production I think is a generic, not an HL7 like I usually use.
If I run in a terminal the code you specified for the Business Service named "Weather" then I get no errors. Yet I still get the error.
If I create a new Business Server with the EnsLib.SOAP.GenericService I still get the error when I call to http://127.0.0.1:57774/esb/soap/EnsLib.SOAP.GenericService/GlobalWeather.asmx
Here is my web app setup in security:
Here is the Business Service configuration from the Production class
<Item Name="Weather" Category="" ClassName="EnsLib.SOAP.GenericService" PoolSize="0" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
<Setting Target="Host" Name="TargetConfigName">Weather BO</Setting>
<Setting Target="Adapter" Name="AdapterURL">/GlobalWeather.asmx</Setting>
<Setting Target="Adapter" Name="EnableStandardRequests">1</Setting>
<Setting Target="Adapter" Name="Port"></Setting>
</Item>
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
Sorry not Business Server but Business Service
I tried "?CfgItem=Weather" on the end of the calling URL (HTTP/1.1 400 Bad Request
) and on the Business Service on the URL.
If I test on a HealthShare 2016, then I get
HTTP/1.1 200 OK
Date: Mon, 06 Feb 2017 20:37:38 GMT
Server: Apache
CACHE-CONTROL: private, max-age=0
VARY: Accept-Encoding
X-ASPNET-VERSION: 4.0.30319
X-POWERED-BY: ASP.NET
SET-COOKIE: CSPSESSIONID=00010000000036So99K9SK000000000000000000000000000000000000; path=/;
CONTENT-ENCODING: gzip
CONTENT-LENGTH: 231
Keep-Alive: timeout=120
Connection: Keep-Alive
Content-Type: text/xml; charset=utf-8
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetWeatherResponse xmlns="http://www.webserviceX.NET"><GetWeatherResult>Data Not Found</GetWeatherResult></GetWeatherResponse></soap:Body></soap:Envelope>
And I thought I configured the settings the same as 2014.1.5, so I don't know what is going on.
Hello everyone, I had the same problem in Ensemble 2018.1 and solve it by placing the same name as the Business Service class when defining it in production
1.- Ensemble> Production Configuration
2.- Services (+)
3.- Select the class in Service Class
4.- Leave blank Service Name
5.- You can add Display Category and Coment
6.- Select Enabled Now
I hope it serves you, Greetings to all
@Eduard Lebedyuk if it helps, I just ran into the same issue and solved it as @Ronald Peña did. I found it odd that the name of the business service can't defer from the class name (and you can't rename them it seems, at least not in the management portal). Is this a bug?
Social networks
InterSystems resources
Log in or sign up
Log in or create a new account to continue
Log in or sign up
Log in or create a new account to continue
Log in or sign up
Log in or create a new account to continue