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 }