Resolved: Custom Connector Development problem

Hello dear community

I’m currently trying to implement a custom connector in Java according to the documentation found here:
https://documentation.sailpoint.com/connectors/custom_source_config/help/idn_custom_connector_config…

I set up a small project with the openConnctor.jar found in the zip here (It’s linked in the documentation above):

https://documentation.sailpoint.com/connectors/custom_source_config/help/idn_custom_connector_config…

I created the connector, source config and source template via REST API and uploaded my jar in my newly injected frontend component.

I can also see that my jar is in the class path. When I test the connection I get the following error:

returnMap {result=error, message={ExceptionType=sailpoint.connector.ConnectorException, LocalizedMessage=sailpoint.tools.GeneralException: Failed to create connector object for the openconnector.MxpCustomConnector connector: java.lang.NoSuchMethodException: openconnector.MxpCustomConnector.(sailpoint.object.Application)}}

I have developed Java for 15+ years, so it’s fairly obvious that the exception complains about the constructor with the signature (sailpoint.object.Application) being missing.

The thing is. openConnector.jar doesn’t contain sailpoint.object.Application (there’s no sailpoint namespace at all - on openconnector).

openconnect.AbstractConnector which needs to be implemented according to the documentation only has:

public AbstractConnector() and
public AbstractConnector(ConnectorConfig config, Log log)

Has anyone had that problem? Did I get the wrong .jar?

I’ve already a experts support case open but since they appear to be swamped I try to verify if I’m using the correct dependency at least.

Thank you!

Hi @rdoebele

Can you share your application xml?

It should start like:

<Application connector=“sailpoint.connector.OpenConnectorAdapter”

You can’t reference your connector directly, you need to go through the OpenConnectorAdapter. Then later in the configuration you would have:

<entry key=“connectorClass” value="openconnector.MxpCustomConnector"/>

edit: I just realized you are using ISC, not IIQ. Configuration might be different, but likely the same issue.

1 Like

Get the attachment from here, see if you’re doing anything differently in the java file. (The deployment steps will differ between IIQ and ISC, of course. But the connector JAR / java code doesn’t care beyond the connector itself)L

https://community.sailpoint.com/t5/Technical-White-Papers/Custom-Connectors/ta-p/75122

1 Like

@paul_hilchey Thank you! That actually solved the problem.
It would have been nice if the documentation for ISC would mention this.

Here’s the example provided by SailPoint:

<Application
  name="Custom HR Connector"
  type="Custom HR Connector"
  connector="sailpoint.connector.ExampleConnector"
  featuresString="ITERATE" >

  <Attributes>
    <Map>
      <entry key="url" value=""/>
      <entry key="username" value=""/>
      <entry key="password" value=""/>
      <entry key="token" value="OAuth"/>
      <entry key="pageSize" value="200"/>
    </Map>
  </Attributes>
  <Schemas>
    <Schema
      identityAttribute="Employee Number"
      displayAttribute="Employee Number"
      nativeObjectType="account"
      objectType="account">

    <AttributeDefinition name="First Name" type="string"/>
    <AttributeDefinition name="Last Name" type="string"/>
    <AttributeDefinition name="Employee Number " type="string"/>
    </Schema>
  </Schemas>
</Application>