It's all about the answers!

Ask a question

Why is my custom, non-oauth OSLC adapter "not a friend" for linking?


Florian Georg (19031818) | asked Jun 14 '13, 6:29 p.m.
I wrote an OSLC provider (CM and RM) that I want to integrate with RTC (or CLM in general).
The provider is running on localhost:8080, all serviceProvider, rootservices, catalog etc documents look fine in the browser. I'm however not using SSL and not implementing any oAuth functionality so far for my prototype.

I registered my provider as a friend both on /jts and /ccm/admin , and I also added the association to the project area (JKE Banking in my test). Additionally, I added http://localhost:8080 to the "Whitelist".

As I do not implement oAuth, I apparently have nothing listed on the inbound "consumer" tab. (Even if I would create a consumer, my application would currently not send any oauth credentials back).

Everything looks cool, unless I try to link a work item with any artifact from my adapter - the dialog to select the provider spawns this error:

(the URL points to my oslc:ServiceProvider)


Firebug or the CALM Dialogs Test Widget give just some verbose json stacktrace (see below).

My idea is that I need to implement oAuth, as otherwise my adapter can't talk back to RTC/CLM.
According to the OSLC spec, this should be no "must" criteria, as I understand it.

If someone could verify my assumption, and also tell me how I could deal with that the easiest way (I don't use Lyo or the OSLC Workshop as a base), I'd be very thankful. Maybe it's as easy as sending back pre-shared oauth credentials in the response header?

Thanks for any hints in advance
  regards
    Florian




JSON Stacktrace:
----------------


{
  "errorClass":"com.ibm.team.repository.common.TeamRepositoryException",
  "nestedError":{
    "errorClass":"com.ibm.team.repository.common.TeamRepositoryException",
    "errorCode":null,
    "errorTraceMarshall":[
      {
        "errorTraceFileName":"OAuthConsumerService.java",
        "errorTraceClassName":"com.ibm.team.repository.service.internal.oauth.shared.OAuthConsumerService$Operation",
        "errorTraceMethodName":"<init>",
        "errorTraceLineNumber":161
      },
      {
        "errorTraceFileName":"OAuthConsumerService.java",
        "errorTraceClassName":"com.ibm.team.repository.service.internal.oauth.shared.OAuthConsumerService",
        "errorTraceMethodName":"send",
        "errorTraceLineNumber":115
      },
      {
        "errorTraceFileName":null,
        "errorTraceClassName":"sun.reflect.GeneratedMethodAccessor3209",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":-1
      },
      {
        "errorTraceFileName":"DelegatingMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.DelegatingMethodAccessorImpl",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":37
      },
      {
        "errorTraceFileName":"Method.java",
        "errorTraceClassName":"java.lang.reflect.Method",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":611
      },
      {
        "errorTraceFileName":"ExportProxyServiceRecord.java",
        "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":361
      },
      {
        "errorTraceFileName":"ExportProxyServiceRecord.java",
        "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord",
        "errorTraceMethodName":"access$0",
        "errorTraceLineNumber":347
      },
      {
        "errorTraceFileName":"ExportProxyServiceRecord.java",
        "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":56
      },
      {
        "errorTraceFileName":null,
        "errorTraceClassName":"$Proxy671",
        "errorTraceMethodName":"send",
        "errorTraceLineNumber":-1
      },
      {
        "errorTraceFileName":"HttpClient.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.server.internal.HttpClient",
        "errorTraceMethodName":"performHttpMethod",
        "errorTraceLineNumber":168
      },
      {
        "errorTraceFileName":"HttpClient.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.server.internal.HttpClient",
        "errorTraceMethodName":"performGet",
        "errorTraceLineNumber":93
      },
      {
        "errorTraceFileName":"OSLCResource.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.common.internal.OSLCResource",
        "errorTraceMethodName":"loadResource",
        "errorTraceLineNumber":59
      },
      {
        "errorTraceFileName":"OSLCResource.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.common.internal.OSLCResource",
        "errorTraceMethodName":"loadResource",
        "errorTraceLineNumber":48
      },
      {
        "errorTraceFileName":"OSLCResourceDescription.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.common.linking.OSLCResourceDescription",
        "errorTraceMethodName":"loadServiceDocument",
        "errorTraceLineNumber":144
      },
      {
        "errorTraceFileName":"CALMFoundationRestService.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService",
        "errorTraceMethodName":"evaluatePickerDescriptions",
        "errorTraceLineNumber":171
      },
      {
        "errorTraceFileName":"CALMFoundationRestService.java",
        "errorTraceClassName":"com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService",
        "errorTraceMethodName":"getAllPickerDescriptions",
        "errorTraceLineNumber":128
      },
      {
        "errorTraceFileName":"NativeMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
        "errorTraceMethodName":"invoke0",
        "errorTraceLineNumber":-2
      },
      {
        "errorTraceFileName":"NativeMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":60
      },
      {
        "errorTraceFileName":"DelegatingMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.DelegatingMethodAccessorImpl",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":37
      },
      {
        "errorTraceFileName":"Method.java",
        "errorTraceClassName":"java.lang.reflect.Method",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":611
      },
      {
        "errorTraceFileName":"ExportProxyServiceRecord.java",
        "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":361
      },
      {
        "errorTraceFileName":"ExportProxyServiceRecord.java",
        "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord",
        "errorTraceMethodName":"access$0",
        "errorTraceLineNumber":347
      },
      {
        "errorTraceFileName":"ExportProxyServiceRecord.java",
        "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":56
      },
      {
        "errorTraceFileName":null,
        "errorTraceClassName":"$Proxy822",
        "errorTraceMethodName":"getAllPickerDescriptions",
        "errorTraceLineNumber":-1
      },
      {
        "errorTraceFileName":"NativeMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
        "errorTraceMethodName":"invoke0",
        "errorTraceLineNumber":-2
      },
      {
        "errorTraceFileName":"NativeMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":60
      },
      {
        "errorTraceFileName":"DelegatingMethodAccessorImpl.java",
        "errorTraceClassName":"sun.reflect.DelegatingMethodAccessorImpl",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":37
      },
      {
        "errorTraceFileName":"Method.java",
        "errorTraceClassName":"java.lang.reflect.Method",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":611
      },
      {
        "errorTraceFileName":"AbstractTeamServerServlet.java",
        "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
        "errorTraceMethodName":"doModelledRestService",
        "errorTraceLineNumber":541
      },
      {
        "errorTraceFileName":"AbstractTeamServerServlet.java",
        "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
        "errorTraceMethodName":"handleRequest2",
        "errorTraceLineNumber":2104
      },
      {
        "errorTraceFileName":"AbstractTeamServerServlet.java",
        "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
        "errorTraceMethodName":"handleRequest",
        "errorTraceLineNumber":1924
      },
      {
        "errorTraceFileName":"AbstractTeamServerServlet.java",
        "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":1800
      },
      {
        "errorTraceFileName":"HttpServlet.java",
        "errorTraceClassName":"javax.servlet.http.HttpServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":722
      },
      {
        "errorTraceFileName":"ServletManager.java",
        "errorTraceClassName":"org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":180
      },
      {
        "errorTraceFileName":"ServletRegistration.java",
        "errorTraceClassName":"org.eclipse.equinox.http.servlet.internal.ServletRegistration",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":61
      },
      {
        "errorTraceFileName":"ProxyServlet.java",
        "errorTraceClassName":"org.eclipse.equinox.http.servlet.internal.ProxyServlet",
        "errorTraceMethodName":"processAlias",
        "errorTraceLineNumber":126
      },
      {
        "errorTraceFileName":"ProxyServlet.java",
        "errorTraceClassName":"org.eclipse.equinox.http.servlet.internal.ProxyServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":76
      },
      {
        "errorTraceFileName":"HttpServlet.java",
        "errorTraceClassName":"javax.servlet.http.HttpServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":722
      },
      {
        "errorTraceFileName":"BridgeServlet.java",
        "errorTraceClassName":"org.eclipse.equinox.servletbridge.BridgeServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":120
      },
      {
        "errorTraceFileName":"JazzServlet.java",
        "errorTraceClassName":"com.ibm.team.repository.server.servletbridge.JazzServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":68
      },
      {
        "errorTraceFileName":"HttpServlet.java",
        "errorTraceClassName":"javax.servlet.http.HttpServlet",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":722
      },
      {
        "errorTraceFileName":"ApplicationFilterChain.java",
        "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
        "errorTraceMethodName":"internalDoFilter",
        "errorTraceLineNumber":305
      },
      {
        "errorTraceFileName":"ApplicationFilterChain.java",
        "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
        "errorTraceMethodName":"doFilter",
        "errorTraceLineNumber":210
      },
      {
        "errorTraceFileName":"BridgeFilter.java",
        "errorTraceClassName":"com.ibm.team.repository.server.servletbridge.BridgeFilter",
        "errorTraceMethodName":"processDelegate",
        "errorTraceLineNumber":133
      },
      {
        "errorTraceFileName":"BridgeFilter.java",
        "errorTraceClassName":"com.ibm.team.repository.server.servletbridge.BridgeFilter",
        "errorTraceMethodName":"doFilter",
        "errorTraceLineNumber":154
      },
      {
        "errorTraceFileName":"ApplicationFilterChain.java",
        "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
        "errorTraceMethodName":"internalDoFilter",
        "errorTraceLineNumber":243
      },
      {
        "errorTraceFileName":"ApplicationFilterChain.java",
        "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
        "errorTraceMethodName":"doFilter",
        "errorTraceLineNumber":210
      },
      {
        "errorTraceFileName":"StandardWrapperValve.java",
        "errorTraceClassName":"org.apache.catalina.core.StandardWrapperValve",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":222
      },
      {
        "errorTraceFileName":"StandardContextValve.java",
        "errorTraceClassName":"org.apache.catalina.core.StandardContextValve",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":123
      },
      {
        "errorTraceFileName":"AuthenticatorBase.java",
        "errorTraceClassName":"org.apache.catalina.authenticator.AuthenticatorBase",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":581
      },
      {
        "errorTraceFileName":"StandardHostValve.java",
        "errorTraceClassName":"org.apache.catalina.core.StandardHostValve",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":168
      },
      {
        "errorTraceFileName":"ErrorReportValve.java",
        "errorTraceClassName":"org.apache.catalina.valves.ErrorReportValve",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":99
      },
      {
        "errorTraceFileName":"SingleSignOn.java",
        "errorTraceClassName":"org.apache.catalina.authenticator.SingleSignOn",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":336
      },
      {
        "errorTraceFileName":"StandardEngineValve.java",
        "errorTraceClassName":"org.apache.catalina.core.StandardEngineValve",
        "errorTraceMethodName":"invoke",
        "errorTraceLineNumber":118
      },
      {
        "errorTraceFileName":"CoyoteAdapter.java",
        "errorTraceClassName":"org.apache.catalina.connector.CoyoteAdapter",
        "errorTraceMethodName":"service",
        "errorTraceLineNumber":407
      },
      {
        "errorTraceFileName":"AbstractHttp11Processor.java",
        "errorTraceClassName":"org.apache.coyote.http11.AbstractHttp11Processor",
        "errorTraceMethodName":"process",
        "errorTraceLineNumber":1002
      },
      {
        "errorTraceFileName":"AbstractProtocol.java",
        "errorTraceClassName":"org.apache.coyote.AbstractProtocol$AbstractConnectionHandler",
        "errorTraceMethodName":"process",
        "errorTraceLineNumber":585
      },
      {
        "errorTraceFileName":"JIoEndpoint.java",
        "errorTraceClassName":"org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor",
        "errorTraceMethodName":"run",
        "errorTraceLineNumber":312
      },
      {
        "errorTraceFileName":"ThreadPoolExecutor.java",
        "errorTraceClassName":"java.util.concurrent.ThreadPoolExecutor$Worker",
        "errorTraceMethodName":"runTask",
        "errorTraceLineNumber":897
      },
      {
        "errorTraceFileName":"ThreadPoolExecutor.java",
        "errorTraceClassName":"java.util.concurrent.ThreadPoolExecutor$Worker",
        "errorTraceMethodName":"run",
        "errorTraceLineNumber":919
      },
      {
        "errorTraceFileName":"Thread.java",
        "errorTraceClassName":"java.lang.Thread",
        "errorTraceMethodName":"run",
        "errorTraceLineNumber":738
      }
    ],
    "errorTrace":[
      "com.ibm.team.repository.service.internal.oauth.shared.OAuthConsumerService$Operation.<init>(OAuthConsumerService.java:161)",
      "com.ibm.team.repository.service.internal.oauth.shared.OAuthConsumerService.send(OAuthConsumerService.java:115)",
      "sun.reflect.GeneratedMethodAccessor3209.invoke(Unknown Source)",
      "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)",
      "java.lang.reflect.Method.invoke(Method.java:611)",
      "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)",
      "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)",
      "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)",
      "$Proxy671.send(Unknown Source)",
      "com.ibm.team.calm.foundation.server.internal.HttpClient.performHttpMethod(HttpClient.java:168)",
      "com.ibm.team.calm.foundation.server.internal.HttpClient.performGet(HttpClient.java:93)",
      "com.ibm.team.calm.foundation.common.internal.OSLCResource.loadResource(OSLCResource.java:59)",
      "com.ibm.team.calm.foundation.common.internal.OSLCResource.loadResource(OSLCResource.java:48)",
      "com.ibm.team.calm.foundation.common.linking.OSLCResourceDescription.loadServiceDocument(OSLCResourceDescription.java:144)",
      "com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService.evaluatePickerDescriptions(CALMFoundationRestService.java:171)",
      "com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService.getAllPickerDescriptions(CALMFoundationRestService.java:128)",
      "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
      "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)",
      "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)",
      "java.lang.reflect.Method.invoke(Method.java:611)",
      "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)",
      "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)",
      "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)",
      "$Proxy822.getAllPickerDescriptions(Unknown Source)",
      "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
      "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)",
      "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)",
      "java.lang.reflect.Method.invoke(Method.java:611)",
      "com.ibm.team.repository.servlet.AbstractTeamServerServlet.doModelledRestService(AbstractTeamServerServlet.java:541)",
      "com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest2(AbstractTeamServerServlet.java:2104)",
      "com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:1924)",
      "com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1800)",
      "javax.servlet.http.HttpServlet.service(HttpServlet.java:722)",
      "org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)",
      "org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)",
      "org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)",
      "org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76)",
      "javax.servlet.http.HttpServlet.service(HttpServlet.java:722)",
      "org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)",
      "com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:68)",
      "javax.servlet.http.HttpServlet.service(HttpServlet.java:722)",
      "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)",
      "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)",
      "com.ibm.team.repository.server.servletbridge.BridgeFilter.processDelegate(BridgeFilter.java:133)",
      "com.ibm.team.repository.server.servletbridge.BridgeFilter.doFilter(BridgeFilter.java:154)",
      "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)",
      "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)",
      "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)",
      "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)",
      "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)",
      "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)",
      "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)",
      "org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:336)",
      "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)",
      "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)",
      "org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)",
      "org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)",
      "org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)",
      "java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)",
      "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)",
      "java.lang.Thread.run(Thread.java:738)"
    ],
    "errorMessage":"The URI \"http:\/\/localhost:8080\/e2o\/rmServices.xml\" cannot be the target of a request, as it is not a trusted friend."
  },
  "errorCode":400,
  "errorTraceMarshall":[
    {
      "errorTraceFileName":"CALMFoundationRestService.java",
      "errorTraceClassName":"com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService",
      "errorTraceMethodName":"evaluatePickerDescriptions",
      "errorTraceLineNumber":183
    },
    {
      "errorTraceFileName":"CALMFoundationRestService.java",
      "errorTraceClassName":"com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService",
      "errorTraceMethodName":"getAllPickerDescriptions",
      "errorTraceLineNumber":128
    },
    {
      "errorTraceFileName":"NativeMethodAccessorImpl.java",
      "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
      "errorTraceMethodName":"invoke0",
      "errorTraceLineNumber":-2
    },
    {
      "errorTraceFileName":"NativeMethodAccessorImpl.java",
      "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":60
    },
    {
      "errorTraceFileName":"DelegatingMethodAccessorImpl.java",
      "errorTraceClassName":"sun.reflect.DelegatingMethodAccessorImpl",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":37
    },
    {
      "errorTraceFileName":"Method.java",
      "errorTraceClassName":"java.lang.reflect.Method",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":611
    },
    {
      "errorTraceFileName":"ExportProxyServiceRecord.java",
      "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":361
    },
    {
      "errorTraceFileName":"ExportProxyServiceRecord.java",
      "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord",
      "errorTraceMethodName":"access$0",
      "errorTraceLineNumber":347
    },
    {
      "errorTraceFileName":"ExportProxyServiceRecord.java",
      "errorTraceClassName":"org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":56
    },
    {
      "errorTraceFileName":null,
      "errorTraceClassName":"$Proxy822",
      "errorTraceMethodName":"getAllPickerDescriptions",
      "errorTraceLineNumber":-1
    },
    {
      "errorTraceFileName":"NativeMethodAccessorImpl.java",
      "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
      "errorTraceMethodName":"invoke0",
      "errorTraceLineNumber":-2
    },
    {
      "errorTraceFileName":"NativeMethodAccessorImpl.java",
      "errorTraceClassName":"sun.reflect.NativeMethodAccessorImpl",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":60
    },
    {
      "errorTraceFileName":"DelegatingMethodAccessorImpl.java",
      "errorTraceClassName":"sun.reflect.DelegatingMethodAccessorImpl",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":37
    },
    {
      "errorTraceFileName":"Method.java",
      "errorTraceClassName":"java.lang.reflect.Method",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":611
    },
    {
      "errorTraceFileName":"AbstractTeamServerServlet.java",
      "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
      "errorTraceMethodName":"doModelledRestService",
      "errorTraceLineNumber":541
    },
    {
      "errorTraceFileName":"AbstractTeamServerServlet.java",
      "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
      "errorTraceMethodName":"handleRequest2",
      "errorTraceLineNumber":2104
    },
    {
      "errorTraceFileName":"AbstractTeamServerServlet.java",
      "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
      "errorTraceMethodName":"handleRequest",
      "errorTraceLineNumber":1924
    },
    {
      "errorTraceFileName":"AbstractTeamServerServlet.java",
      "errorTraceClassName":"com.ibm.team.repository.servlet.AbstractTeamServerServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":1800
    },
    {
      "errorTraceFileName":"HttpServlet.java",
      "errorTraceClassName":"javax.servlet.http.HttpServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":722
    },
    {
      "errorTraceFileName":"ServletManager.java",
      "errorTraceClassName":"org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":180
    },
    {
      "errorTraceFileName":"ServletRegistration.java",
      "errorTraceClassName":"org.eclipse.equinox.http.servlet.internal.ServletRegistration",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":61
    },
    {
      "errorTraceFileName":"ProxyServlet.java",
      "errorTraceClassName":"org.eclipse.equinox.http.servlet.internal.ProxyServlet",
      "errorTraceMethodName":"processAlias",
      "errorTraceLineNumber":126
    },
    {
      "errorTraceFileName":"ProxyServlet.java",
      "errorTraceClassName":"org.eclipse.equinox.http.servlet.internal.ProxyServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":76
    },
    {
      "errorTraceFileName":"HttpServlet.java",
      "errorTraceClassName":"javax.servlet.http.HttpServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":722
    },
    {
      "errorTraceFileName":"BridgeServlet.java",
      "errorTraceClassName":"org.eclipse.equinox.servletbridge.BridgeServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":120
    },
    {
      "errorTraceFileName":"JazzServlet.java",
      "errorTraceClassName":"com.ibm.team.repository.server.servletbridge.JazzServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":68
    },
    {
      "errorTraceFileName":"HttpServlet.java",
      "errorTraceClassName":"javax.servlet.http.HttpServlet",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":722
    },
    {
      "errorTraceFileName":"ApplicationFilterChain.java",
      "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
      "errorTraceMethodName":"internalDoFilter",
      "errorTraceLineNumber":305
    },
    {
      "errorTraceFileName":"ApplicationFilterChain.java",
      "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
      "errorTraceMethodName":"doFilter",
      "errorTraceLineNumber":210
    },
    {
      "errorTraceFileName":"BridgeFilter.java",
      "errorTraceClassName":"com.ibm.team.repository.server.servletbridge.BridgeFilter",
      "errorTraceMethodName":"processDelegate",
      "errorTraceLineNumber":133
    },
    {
      "errorTraceFileName":"BridgeFilter.java",
      "errorTraceClassName":"com.ibm.team.repository.server.servletbridge.BridgeFilter",
      "errorTraceMethodName":"doFilter",
      "errorTraceLineNumber":154
    },
    {
      "errorTraceFileName":"ApplicationFilterChain.java",
      "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
      "errorTraceMethodName":"internalDoFilter",
      "errorTraceLineNumber":243
    },
    {
      "errorTraceFileName":"ApplicationFilterChain.java",
      "errorTraceClassName":"org.apache.catalina.core.ApplicationFilterChain",
      "errorTraceMethodName":"doFilter",
      "errorTraceLineNumber":210
    },
    {
      "errorTraceFileName":"StandardWrapperValve.java",
      "errorTraceClassName":"org.apache.catalina.core.StandardWrapperValve",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":222
    },
    {
      "errorTraceFileName":"StandardContextValve.java",
      "errorTraceClassName":"org.apache.catalina.core.StandardContextValve",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":123
    },
    {
      "errorTraceFileName":"AuthenticatorBase.java",
      "errorTraceClassName":"org.apache.catalina.authenticator.AuthenticatorBase",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":581
    },
    {
      "errorTraceFileName":"StandardHostValve.java",
      "errorTraceClassName":"org.apache.catalina.core.StandardHostValve",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":168
    },
    {
      "errorTraceFileName":"ErrorReportValve.java",
      "errorTraceClassName":"org.apache.catalina.valves.ErrorReportValve",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":99
    },
    {
      "errorTraceFileName":"SingleSignOn.java",
      "errorTraceClassName":"org.apache.catalina.authenticator.SingleSignOn",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":336
    },
    {
      "errorTraceFileName":"StandardEngineValve.java",
      "errorTraceClassName":"org.apache.catalina.core.StandardEngineValve",
      "errorTraceMethodName":"invoke",
      "errorTraceLineNumber":118
    },
    {
      "errorTraceFileName":"CoyoteAdapter.java",
      "errorTraceClassName":"org.apache.catalina.connector.CoyoteAdapter",
      "errorTraceMethodName":"service",
      "errorTraceLineNumber":407
    },
    {
      "errorTraceFileName":"AbstractHttp11Processor.java",
      "errorTraceClassName":"org.apache.coyote.http11.AbstractHttp11Processor",
      "errorTraceMethodName":"process",
      "errorTraceLineNumber":1002
    },
    {
      "errorTraceFileName":"AbstractProtocol.java",
      "errorTraceClassName":"org.apache.coyote.AbstractProtocol$AbstractConnectionHandler",
      "errorTraceMethodName":"process",
      "errorTraceLineNumber":585
    },
    {
      "errorTraceFileName":"JIoEndpoint.java",
      "errorTraceClassName":"org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor",
      "errorTraceMethodName":"run",
      "errorTraceLineNumber":312
    },
    {
      "errorTraceFileName":"ThreadPoolExecutor.java",
      "errorTraceClassName":"java.util.concurrent.ThreadPoolExecutor$Worker",
      "errorTraceMethodName":"runTask",
      "errorTraceLineNumber":897
    },
    {
      "errorTraceFileName":"ThreadPoolExecutor.java",
      "errorTraceClassName":"java.util.concurrent.ThreadPoolExecutor$Worker",
      "errorTraceMethodName":"run",
      "errorTraceLineNumber":919
    },
    {
      "errorTraceFileName":"Thread.java",
      "errorTraceClassName":"java.lang.Thread",
      "errorTraceMethodName":"run",
      "errorTraceLineNumber":738
    }
  ],
  "errorTrace":[
    "com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService.evaluatePickerDescriptions(CALMFoundationRestService.java:183)",
    "com.ibm.team.calm.foundation.server.internal.rest.CALMFoundationRestService.getAllPickerDescriptions(CALMFoundationRestService.java:128)",
    "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
    "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)",
    "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)",
    "java.lang.reflect.Method.invoke(Method.java:611)",
    "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)",
    "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)",
    "org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)",
    "$Proxy822.getAllPickerDescriptions(Unknown Source)",
    "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
    "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)",
    "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)",
    "java.lang.reflect.Method.invoke(Method.java:611)",
    "com.ibm.team.repository.servlet.AbstractTeamServerServlet.doModelledRestService(AbstractTeamServerServlet.java:541)",
    "com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest2(AbstractTeamServerServlet.java:2104)",
    "com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:1924)",
    "com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1800)",
    "javax.servlet.http.HttpServlet.service(HttpServlet.java:722)",
    "org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)",
    "org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)",
    "org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)",
    "org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76)",
    "javax.servlet.http.HttpServlet.service(HttpServlet.java:722)",
    "org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)",
    "com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:68)",
    "javax.servlet.http.HttpServlet.service(HttpServlet.java:722)",
    "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)",
    "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)",
    "com.ibm.team.repository.server.servletbridge.BridgeFilter.processDelegate(BridgeFilter.java:133)",
    "com.ibm.team.repository.server.servletbridge.BridgeFilter.doFilter(BridgeFilter.java:154)",
    "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)",
    "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)",
    "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)",
    "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)",
    "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)",
    "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)",
    "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)",
    "org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:336)",
    "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)",
    "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)",
    "org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)",
    "org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)",
    "org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)",
    "java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)",
    "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)",
    "java.lang.Thread.run(Thread.java:738)"
  ],
  "errorMessage":"Problems acquiring the remote service document: The URI \"http:\/\/localhost:8080\/e2o\/rmServices.xml\" cannot be the target of a request, as it is not a trusted friend."
}

Accepted answer


permanent link
Samuel Padgett (2172) | answered Jun 18 '13, 9:14 a.m.
JAZZ DEVELOPER
Florian,

I'm not clear on how you have created a friend to your provider without supporting OAuth. Do you have a rootservices document with OAuth URLs?

I believe you need to support OAuth to create these links. So you have the options of

1) Defining the OAuth URLs in your rootservices and returning dummy responses, tricking RTC into thinking you support OAuth :) One you definitely need is jfs:oauthRequestConsumerKeyUrl. You can return a dummy key. See

https://jazz.net/wiki/bin/view/Main/RootServicesSpecAddendum2

2) Using the Lyo OAuth provider to implement OAuth for real. It's not too difficult, and you don't need to pull in too many dependencies. (OSLC4J is not required.) The Bugzilla sample shows how it can be done.

Good luck.
Florian Georg selected this answer as the correct answer

Comments
Florian Georg commented Jun 18 '13, 6:27 p.m. | edited Jun 18 '13, 6:28 p.m.

Thanks Samuel faking the jfs:oauthRequestConsumerKeyUrl did the trick for me.
Can't remember how I got the "friend" set up without that before.
However, it feels odd that we need to do such things, and the integration is not working with a "bare bones OSLC provider" (which according to the spec does not know the jfs namespace, and does not require oAuth).

P.S.: I didn't want to use Lyo, as Java in general feels too verbose for me these days.

regards
  Florian

Your answer


Register or to post your answer.