OData Publish - Exception occurred while processing REST request.
0
Hi, I am trying to start using OData and get a for me weird problem. When I start the local server and look at http://localhost:8080/odata/Published_OData_service/v1/Principals I get an Odata publish error. java.lang.IllegalArgumentException: This data table 'Laytime.CollectionHelper' doesn't have the column 'Laytime.CollectionHelper_Collection'. I have 3 entities. Principal, CollectionHelper and Collection. They are related like this: One ‘Collection’ object is associated with multiple ‘Principal’ objects One ‘Collection’ object is associated with multiple ‘CollectionHelper’ objects One ‘CollectionHelper’ object is associated with one ‘Principal’ objects I would like to expose the Principal and the CollectionHelper with Odata. If I only expose the principal it works or if I look at http://localhost:8080/odata/Published_OData_service/v1/CollectionHelpers it also works. Kind regards Johan Stack trace: java.lang.IllegalArgumentException: This data table 'Laytime.CollectionHelper' doesn't have the column 'Laytime.CollectionHelper_Collection'. at com.mendix.connectionbus.data.InternalDataTableSchema.getColumnIndex(InternalDataTableSchema.java:170) at com.mendix.connectionbus.data.InternalDataRow.getColumnIndex(InternalDataRow.java:40) at com.mendix.connectionbus.data.InternalDataRow.getValue(InternalDataRow.java:147) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$fillAssociationColumnWithIds$2(ResultCreator.scala:121) at scala.Option.foreach(Option.scala:407) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$fillAssociationColumnWithIds$1(ResultCreator.scala:120) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at com.mendix.connectionbus.retrieve.ResultCreator.fillAssociationColumnWithIds(ResultCreator.scala:116) at com.mendix.connectionbus.retrieve.ResultCreator.handleAssociationChildIdsResult(ResultCreator.scala:100) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$handleTables$2(ResultCreator.scala:56) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$handleTables$2$adapted(ResultCreator.scala:50) at scala.collection.immutable.List.foreach(List.scala:392) at com.mendix.connectionbus.retrieve.ResultCreator.handleTables(ResultCreator.scala:50) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$handleTables$3(ResultCreator.scala:51) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$handleTables$3$adapted(ResultCreator.scala:51) at scala.Option.foreach(Option.scala:407) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$handleTables$2(ResultCreator.scala:51) at com.mendix.connectionbus.retrieve.ResultCreator.$anonfun$handleTables$2$adapted(ResultCreator.scala:50) at scala.collection.immutable.List.foreach(List.scala:392) at com.mendix.connectionbus.retrieve.ResultCreator.handleTables(ResultCreator.scala:50) at com.mendix.connectionbus.retrieve.ResultCreator.getResult(ResultCreator.scala:37) at com.mendix.connectionbus.retrieve.QueryRequestExecutor.execute(QueryRequestExecutor.scala:29) at com.mendix.connectionbus.retrieve.DataStoreCaller.$anonfun$processOqlGetRequest$1(DataStoreCaller.scala:45) at scala.Option.map(Option.scala:230) at com.mendix.connectionbus.retrieve.DataStoreCaller.processOqlGetRequest(DataStoreCaller.scala:42) at com.mendix.connectionbus.retrieve.DataStoreCaller.$anonfun$getResult$1(DataStoreCaller.scala:35) at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:245) at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36) at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33) at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38) at scala.collection.TraversableLike.flatMap(TraversableLike.scala:245) at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:242) at scala.collection.AbstractTraversable.flatMap(Traversable.scala:108) at com.mendix.connectionbus.retrieve.DataStoreCaller.getResult(DataStoreCaller.scala:35) at com.mendix.connectionbus.retrieve.DataStoreCaller.getResult(DataStoreCaller.scala:33) at com.mendix.connectionbus.retrieve.GetRequestHandler.doRequest(GetRequestHandler.java:66) at com.mendix.connectionbus.RequestAnalyzer.doRequest(RequestAnalyzer.java:49) at com.mendix.connectionbus.ConnectionBusImpl.doRequest(ConnectionBusImpl.java:512) at com.mendix.connectionbus.ConnectionBusImpl.doRequest(ConnectionBusImpl.java:494) at com.mendix.connectionbus.retrieve.QueryBuilderHandler$.executeQuery(QueryBuilderHandler.scala:59) at com.mendix.connectionbus.retrieve.QueryBuilderHandler.executeQuery(QueryBuilderHandler.scala) at com.mendix.connectionbus.ConnectionBusImpl.execute(ConnectionBusImpl.java:650) at com.mendix.datastorage.impl.QueryBuilder$InnerIterator.x$1$lzycompute(QueryBuilder.scala:101) at com.mendix.datastorage.impl.QueryBuilder$InnerIterator.x$1(QueryBuilder.scala:99) at com.mendix.datastorage.impl.QueryBuilder$InnerIterator.rowIterator$lzycompute(QueryBuilder.scala:99) at com.mendix.datastorage.impl.QueryBuilder$InnerIterator.rowIterator(QueryBuilder.scala:99) at com.mendix.datastorage.impl.QueryBuilder$InnerIterator.hasNext(QueryBuilder.scala:105) at com.mendix.datastorage.impl.QueryBuilder$$anon$2.hasNext(QueryBuilder.scala:88) at com.mendix.integration.rest.query.DataQueryHandler.$anonfun$handleDataQuery$1(DataQueryHandler.scala:80) at com.mendix.integration.rest.query.DataQueryHandler.$anonfun$handleDataQuery$1$adapted(DataQueryHandler.scala:77) at com.mendix.datastorage.impl.Using$.using(Using.scala:6) at com.mendix.datastorage.impl.QueryBuilder.withStream(QueryBuilder.scala:35) at com.mendix.integration.rest.query.DataQueryHandler.handleDataQuery(DataQueryHandler.scala:77) at com.mendix.integration.rest.query.DataQueryHandler.handle(DataQueryHandler.scala:47) at com.mendix.integration.rest.odata.ODataModule.$anonfun$handle$2(ODataModule.scala:25) at scala.util.Try$.apply(Try.scala:213) at com.mendix.integration.rest.odata.ODataModule.$anonfun$handle$1(ODataModule.scala:24) at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25) at com.mendix.integration.rest.odata.RestQueryServiceMonitoredAction.monitor(ODataModule.scala:54) at com.mendix.integration.rest.odata.ODataModule.handleRequest$1(ODataModule.scala:23) at com.mendix.integration.rest.odata.ODataModule.$anonfun$handle$6(ODataModule.scala:47) at scala.util.Success.flatMap(Try.scala:251) at com.mendix.integration.rest.odata.ODataModule.$anonfun$handle$5(ODataModule.scala:40) at com.mendix.integration.util.AutoCloseableUtil$.using(AutoCloseableUtil.scala:10) at com.mendix.integration.rest.odata.ODataModule.$anonfun$handle$4(ODataModule.scala:37) at scala.util.Success.flatMap(Try.scala:251) at com.mendix.integration.rest.odata.ODataModule.$anonfun$handle$3(ODataModule.scala:36) at scala.util.Success.flatMap(Try.scala:251) at com.mendix.integration.rest.odata.ODataModule.handle(ODataModule.scala:35) at com.mendix.integration.requesthandlers.ServiceRequestHandler.processRequest(ServiceRequestHandler.scala:17) at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:40) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:76) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:73) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:79) at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.java:963) at com.mendix.m2ee.appcontainer.server.handler.RuntimeHandler.service(RuntimeHandler.java:42) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:867) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:502) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.base/java.lang.Thread.run(Thread.java:834)