I am trying to learn how to successfully build a custom module for Ignition Perspective but I am running into an issue. I have added a simple react component and built my project successfully and I get the .modl file but when I Ignition tries to load the module it fails with
java.lang.NoClassDefFoundError: com/inductiveautomation/perspective/gateway/api/PerspectiveContext
I have triple checked against the sample project provided by IA but I am not able to find where I went wrong.
PerspectiveContext imports fine with no errors
import java.util.Optional;
import ca.on.listech.perspectivematerial.common.PerspectiveMaterialModule;
import ca.on.listech.perspectivematerial.common.components.TextField;
import com.inductiveautomation.ignition.common.licensing.LicenseState;
import com.inductiveautomation.ignition.common.util.LoggerEx;
import com.inductiveautomation.ignition.gateway.model.AbstractGatewayModuleHook;
import com.inductiveautomation.ignition.gateway.model.GatewayContext;
import com.inductiveautomation.perspective.common.api.ComponentRegistry;
import com.inductiveautomation.perspective.gateway.api.PerspectiveContext;
but when attempting to get the PerspectiveContext it's failing. Here is the startup method where the error it occurring
@Override
public void startup(LicenseState licenseState) {
log.info("Starting up Perspective Material Hook");
this.perspectiveContext = PerspectiveContext.get(this.gatewayContext);
this.componentRegistry = this.perspectiveContext.getComponentRegistry();
if (this.componentRegistry != null) {
log.info("Registering Components");
this.componentRegistry.registerComponent(TextField.DESCRIPTOR);
} else {
log.error("Reference to component registry not found, PM Components will fail to function!");
}
}
Any ideas?