How to query RDNG 6.0.3 with configuration management enabled through OSLC?
Has anyone encountered issues when querying over OSLC v2 on RDNG 6.0.3?
I am able to query an RDNG project when configuration management is not enabled:
GET /rm/views?oslc.query=true&projectURL={projectURL}&oslc.prefix=rdf%3D%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E&oslc.select=&oslc.where=rdf:type%3D%3Chttp%3A%2F%2Fopen-services.net%2Fns%2Frm%23RequirementCollection%3E&oslc.pageSize=400 HTTP/1.1
Accept: application/rdf+xml
OSLC-Core-Version: 2.0
Accept-Language: en-US
200 OK
The same request on a configuration management enabled project does not work:
GET /rm/views?oslc.query=true&projectURL={projectURL}g&oslc.prefix=rdf%3D%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E&oslc.select=&oslc.where=rdf:type%3D%3Chttp%3A%2F%2Fopen-services.net%2Fns%2Frm%23RequirementCollection%3E&oslc.pageSize=400 HTTP/1.1
Accept: application/rdf+xml
OSLC-Core-Version: 2.0
Accept-Language: en-US
oslc.configuration: https://{server}:9443/gc/configuration/4
Error processing response (HTTP 400: Bad Request): com.ibm.rdm.fronting.server.exception.ForbiddenException: No project defined (More info found at entry [6490a548dfdd241d] in the RM application server log);
The corresponding log entry:
2017-02-27 08:34:48,777 [ Default Executor-thread-23413] ERROR m.ibm.rdm.fronting.server.services.RMBridgeService - Service Error: Unable to resolve expected configuration.
2017-02-27 08:34:48,840 [ Default Executor-thread-23413] ERROR com.ibm.rdm.fronting.server.rrs.views.ViewService - CRRRS1007E A problem occurred in the Requirements Management (RM) server: Entry [6490a548dfdd241d]
java.lang.RuntimeException: com.ibm.rdm.fronting.server.exception.ForbiddenException: No project defined
at com.ibm.rdm.fronting.server.rrs.views.execution.types.ViewExecutionTypeModel.getAllAttributeDefintionUrisForProject(ViewExecutionTypeModel.java:170)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.FetchPlanner.getAllFieldsForProject(FetchPlanner.java:129)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.FetchPlanner.addFieldsToFetchByExpandingWildcard(FetchPlanner.java:84)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.FetchPlanner.planFetch(FetchPlanner.java:64)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.BuildEnvRqlVisitor.visitSelect(BuildEnvRqlVisitor.java:59)
at com.ibm.rdm.rql.expr.SelectExpr.accept(SelectExpr.java:74)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.DefaultRqlVisitor.visitRqlQuery(DefaultRqlVisitor.java:63)
at com.ibm.rdm.rql.expr.RqlQuery.accept(RqlQuery.java:151)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.SparqlRqlVisitor.visitRqlQuery(SparqlRqlVisitor.java:161)
at com.ibm.rdm.fronting.server.rrs.views.execution.sparql.SparqlRqlVisitor.visitRqlQuery(SparqlRqlVisitor.java:1)
at com.ibm.rdm.rql.expr.RqlQuery.accept(RqlQuery.java:151)
at com.ibm.rdm.fronting.server.rrs.views.execution.ViewExecutor.queryToSparql(ViewExecutor.java:138)
at com.ibm.rdm.fronting.server.rrs.views.execution.ViewExecutor.queryToSparql(ViewExecutor.java:121)
at com.ibm.rdm.fronting.server.rrs.views.execution.ViewExecutor.queryToSparql(ViewExecutor.java:117)
at com.ibm.rdm.fronting.server.rrs.views.execution.grid.ArtifactGridViewExecutor.generateSparql(ArtifactGridViewExecutor.java:203)
at com.ibm.rdm.fronting.server.rrs.views.execution.grid.ArtifactGridViewExecutor.generateSparql(ArtifactGridViewExecutor.java:185)
at com.ibm.rdm.fronting.server.rrs.views.execution.grid.ArtifactGridViewExecutor.executeSparqlQuery(ArtifactGridViewExecutor.java:106)
at com.ibm.rdm.fronting.server.rrs.views.execution.grid.ArtifactGridViewExecutor.executeGridViewRequest(ArtifactGridViewExecutor.java:91)
at com.ibm.rdm.fronting.server.rrs.views.execution.grid.GridViewExecutor.execute(GridViewExecutor.java:94)
at com.ibm.rdm.fronting.server.rrs.views.execution.grid.GridViewExecutor.execute(GridViewExecutor.java:87)
at com.ibm.rdm.fronting.server.rrs.views.ViewExecutionRequest.executeView(ViewExecutionRequest.java:204)
at com.ibm.rdm.fronting.server.rrs.views.OslcViewExecutionRequest.execute(OslcViewExecutionRequest.java:96)
at com.ibm.rdm.fronting.server.core.internal.request.RRSCommandBase.call(RRSCommandBase.java:278)
at com.ibm.rdm.fronting.server.core.internal.request.RRSCommandBase.call(RRSCommandBase.java:1)
at com.ibm.rdm.fronting.server.core.request.async.internal.CommandRunnerService.runCommand(CommandRunnerService.java:121)
at com.ibm.rdm.fronting.server.core.internal.request.RRSCommandComposite.execute(RRSCommandComposite.java:74)
at com.ibm.rdm.fronting.server.core.internal.request.RRSCommandBase.call(RRSCommandBase.java:278)
at com.ibm.rdm.fronting.server.core.internal.request.RRSCommandBase.call(RRSCommandBase.java:1)
at com.ibm.rdm.fronting.server.core.request.async.internal.CommandRunnerService.runCommand(CommandRunnerService.java:121)
at com.ibm.rdm.fronting.server.core.internal.InternalDomainServiceBase.runCompositeCommandSynchronously(InternalDomainServiceBase.java:541)
at com.ibm.rdm.fronting.server.rrs.views.ViewServiceInternal.doGetInternal(ViewServiceInternal.java:196)
at com.ibm.rdm.fronting.server.core.internal.RRSRestServiceBase.runInternalMethod(RRSRestServiceBase.java:691)
at com.ibm.rdm.fronting.server.core.internal.RRSRestServiceBase.handleMethod(RRSRestServiceBase.java:579)
at com.ibm.rdm.fronting.server.core.internal.RRSRestServiceBase.doGet(RRSRestServiceBase.java:128)
at com.ibm.rdm.fronting.server.core.internal.RRSRestServiceBase.performService(RRSRestServiceBase.java:358)
at com.ibm.rdm.fronting.server.core.internal.RRSRestServiceBase.service(RRSRestServiceBase.java:206)
at com.ibm.team.jfs.app.servlet.AppContainerServlet.dispatchRequest(AppContainerServlet.java:155)
at com.ibm.team.jfs.app.servlet.AppContainerServlet.service(AppContainerServlet.java:282)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleAppSdkRestServiceRequest2(AbstractTeamServerServlet.java:2004)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.access$2(AbstractTeamServerServlet.java:1959)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet$2.service(AbstractTeamServerServlet.java:264)
at com.ibm.team.repository.service.internal.compatibility.auth.DelegatedAuthHandlerService$1.run(DelegatedAuthHandlerService.java:263)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleAuthentication(AbstractTeamServerServlet.java:2060)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleAppSdkRestServiceRequest(AbstractTeamServerServlet.java:1935)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1662)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:152)
at com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:778)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:152)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:94)
at com.ibm.team.repository.server.servletbridge.BridgeFilter.processDelegate(BridgeFilter.java:165)
at com.ibm.team.repository.server.servletbridge.BridgeFilter.doFilter(BridgeFilter.java:198)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:207)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:1021)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1143)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4869)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:297)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:997)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:262)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:955)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:341)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:471)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:405)
at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:285)
at com.ibm.ws.http.channel.internal.inbound.HttpICLReadCallback.complete(HttpICLReadCallback.java:66)
at com.ibm.ws.channel.ssl.internal.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1777)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
at java.lang.Thread.run(Thread.java:809)
Caused by: com.ibm.rdm.fronting.server.exception.ForbiddenException: No project defined
at com.ibm.rdm.fronting.server.exception.RRSException.newException(RRSException.java:258)
at com.ibm.rdm.fronting.server.exception.RRSException.newMethodForbiddenException(RRSException.java:161)
at com.ibm.rdm.fronting.server.core.internal.DefaultValidatorsService.buildValidationErrorException(DefaultValidatorsService.java:202)
at com.ibm.rdm.fronting.server.services.types.internal.WorkflowTypeCache.getWorkflowTypes(WorkflowTypeCache.java:288)
at com.ibm.rdm.fronting.server.services.types.internal.ProjectTypeSystem.findAllAttributeDefinitionUris(ProjectTypeSystem.java:1146)
at com.ibm.rdm.fronting.server.rrs.views.execution.types.ViewExecutionTypeModel.getAllAttributeDefintionUrisForProject(ViewExecutionTypeModel.java:165)
... 83 more
Accepted answer
Hi I think this is a known issue already reported in : https://jazz.net/jazz03/web/projects/Requirements%20Management#action=com.ibm.team.workitem.viewWorkItem&id=114076
One other answer
You simply used the wrong value for the oslc.configuration parameter - you should use the RM local configuration, not the GC configuration.
You can treat the GC configuration as a set of local configurations from the participating applications (RM in this case). The GC configuration has no direct relation to the RM artifacts, while the local configuration does.
Comments
My RM streams are added to GC configurations. I've added this as a potential duplicate as https://jazz.net/jazz03/web/projects/Requirements%20Management#action=com.ibm.team.workitem.viewWorkItem&id=113272.
The point is, the RM artifacts should not be bound to a GC configuration, as you can change the GC configuration (e.g. add an RM configuration to it or remove from it) which can easily break the artifacts' integrity if it were the case. Unless we expect RM to resolve the local configuration from the GC configuration and then use it for the artifacts.
> Unless we expect RM to resolve the local configuration from the GC configuration and then use it for the artifacts.
Yes, I expect that to work.