Integrating OSLC RefImpl with IBM Jazz

So, after you select the resource and press ok, the resource is not appearing in the links section of the Doors item?

Can you share how the resource response looks like from the network tab?

And also the content of the json when you press hte “ok” button?

I see no json anywhere.

This is the response body to the request to /rm/proxy?uri=/services/resource

<?xml version=“1.0” encoding=“UTF-8"?>
<rdf:RDF
    xmlns:dcterms=“http://purl.org/dc/terms/”
    xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
    xmlns:oslc_data=“http://open-services.net/ns/servicemanagement/1.0/”
    xmlns:oslc=“http://open-services.net/ns/core#”
    xmlns:oslc_am=“http://open-services.net/ns/am#”
    xmlns:rdfs=“http://www.w3.org/2000/01/rdf-schema#”>
  <oslc_am:Resource rdf:about=“${my-AM-server}/services/resource/B000BFMIY0”>
    <dcterms:identifier>B000BFMIY0</dcterms:identifier>
    <dcterms:title rdf:parseType=“Literal”>AMR-B000BFMIY0</dcterms:title>
    <dcterms:created rdf:datatype=“http://www.w3.org/2001/XMLSchema#dateTime”
    >2026-02-06T10:31:47.377Z</dcterms:created>
    <dcterms:type>http://open-services.net/ns/am#Resource</dcterms:type>
  </oslc_am:Resource>
</rdf:RDF>

Great, is seems like Jazz successfully uses the OSLC Selection Dialog feature of your OSLC server.

Now, my suspicion is that Jazz is refusing to store the xyz link (due to oslc-specs/notes/linking-profiles/link-profiles.md at master · oslc-op/oslc-specs · GitHub) on its resource A towards your resource B on your AM server and is trying to “force” your OSLC server to “take it”. It should do so by making a POST request to your server, trying to modify the resource B you want to link to from a Jazz resource A to store an inverse link (B)-[xyzBy]->(A).

You now need to verify that Jazz attempts to make such a request. Your options:

The POST request happens on the backend, you won’t see it in the browser. The one you see I think is the GET request via the Jazz proxy?

P.S. You may also want to put some of the Jazz Wiki (password-protected in some cases) into your LLM context, e.g. DeploymentIntegrating < Deployment < TWiki To be fair, the information there is fairly scattered and inconsistent.

Concering the “json” content, I am thinking of the response from the methods respondWithWindowName or respondWithPostMessage. refimpl/src/server-am/src/main/webapp/static/js/delegated-ui.js at main · oslc-op/refimpl · GitHub

Given that we have not used AM against Jazz before, I suspect that json is not as well formed.

@andrew Concerning your last comment, If Jazz is sending an update, I believe it would be a PUT request (not a POST). But I doubt it. It’s worth checking though. If that occurs, you should be able to capture it on the method updateResource in refimpl/src/server-am/src/main/java/co/oslc/refimpl/am/gen/services/WsResource.java at main · oslc-op/refimpl · GitHub

1 Like

I have enabled ‘trace’ logging at highest/default level on AM server + removed or set to trace all other level settings.

After selecting an item to link to,
in the AM logs I see this:

server-am-1  | [TRACE] JenaModelHelper - createJenaModel - Execution Duration: 2 ms
server-am-1  | [TRACE] AbstractOslcRdfXmlProvider - Using 'RDF/XML' writer for 'application/rdf+xml' Accept media type
server-am-1  | [TRACE] JenaModelHelper - createJenaModel - Execution Duration: 2 ms
server-am-1  | [TRACE] AbstractOslcRdfXmlProvider - writeObjectsTo - Execution Duration: 5 ms

in the RM server logs I only see this occuring:
ERROR m.ibm.rdm.fronting.server.services.RMBridgeService - Service Error: Unable to resolve expected configuration.

niether of which indicates that any request is sent from RM-tool to the AM server after I click ‘OK’.

I will see if I can try and track it down with one of the other methods, i.e. wireshark!

It looks like you are somehow triggering RDF deserialization, might be worth putting goreplay in front of the AM server or run it in the IDE with a debugger to see which controller methods get hit with what payloads.