Skip to content

Operation /instance/getConnectorEndpoints fails with a server error (HTTP code 500)

When deployed as part of the ADOxxWeb API the /instance/getConnectorEndpoints operation leads to a server error:
Cannot invoke "String.split(String)" because the return value of "org.adoxx.basis.dao.client.adoxx.ADOxxResponse.getResult()" is null

java.lang.NullPointerException: Cannot invoke "String.split(String)" because the return value of "org.adoxx.basis.dao.client.adoxx.ADOxxResponse.getResult()" is null
	org.adoxx.basis.read.model.response.ResponseUtils.transformResponse(ResponseUtils.java:39)
	org.adoxx.basis.read.ReadUtils.transformResponse(ReadUtils.java:14)
	org.adoxx.basis.read.RelationReadImpl.getConnectorEndpoints(RelationReadImpl.java:67)
	java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.base/java.lang.reflect.Method.invoke(Method.java:568)
	org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179)
	org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
	org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201)
	org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104)
	org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
	org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
	org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
	org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
	org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265)
	org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
	org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
	org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
	org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225)
	org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:304)
	org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:222)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:279)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

Using the same parameters to get the connector endpoints directly via /dao/execute worked to get a part of the result (since that can only return one variable at a time):

  • AdoScript: CC "Core" LOAD_MODEL modelid:(91215) CC "Core" GET_CONNECTOR_ENDPOINTS objid:(91223) CC "Core" DISCARD_MODEL modelid:(91215)
  • AdoScriptResultVariable: fromobjid
  • dataType: integer
  • URL for POST request: http://localhost:8080/ADOxxWEBAPI/services/rest/dao/execute?AdoScript=CC%20%22Core%22%20LOAD_MODEL%20modelid%3A(91215)%20CC%20%22Core%22%20GET_CONNECTOR_ENDPOINTS%20objid%3A(91223)%20CC%20%22Core%22%20DISCARD_MODEL%20modelid%3A(91215)&AdoScriptResultVariable=fromobjid&dataType=integer
  • Response:
    {
      "result": "91217",
      "ecode": "0",
      "duration": 221,
      "startTime": "19.09.2025,12:43:17",
      "endTime": "19.09.2025,12:43:18",
      "script": {
        "script": "CC \"Core\" LOAD_MODEL modelid:(91215) CC \"Core\" GET_CONNECTOR_ENDPOINTS objid:(91223) CC \"Core\" DISCARD_MODEL modelid:(91215)\r\nSET adowsresponse:(STR fromobjid + \"@@@\" + STR ecode)",
        "name": null,
        "waitTime": "30000",
        "executeTime": "30000",
        "retries": "1",
        "userType": "usertype_one",
        "dataType": "integer",
        "dbname": "adoxx18lbrs"
      },
      "errorText": "No error",
      "success": true
    }