# Error when i launched the designer

**URL:** <https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470>\
**Category:** Module Development\
**Tags:** vision\
**Created:** [November 14, 2022, 2:22pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470 "2022-11-14T14:22:54Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jean\_Traversi](https://avatars.discourse-cdn.com/v4/letter/j/ce73a5/32.png) [@Jean\_Traversi](https://forum.inductiveautomation.com/u/Jean_Traversi)\
**Post date:** [November 14, 2022, 2:22pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/1 "2022-11-14T14:22:54Z")

</div>

Hello,  
I m developing module for perspectives and vision modules but when i m uninstall vision module and launch the designer i have this error message.

```auto
ModuleLoadException: Error loading hook class "com.axone_io.ignition.calendar.designer.DesignerHook" for module "Calendar".
	caused by NoClassDefFoundError: com/inductiveautomation/vision/api/client/AbstractClientModuleHook
	caused by ClassNotFoundException: com.inductiveautomation.vision.api.client.AbstractClientModuleHook

Ignition v8.1.20 (b2022082313)
Java: Azul Systems, Inc. 11.0.15

```

I need my module to work without perspective or vision installed.

I dont know how to resolve this...

Thanks

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 14, 2022, 2:33pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/2 "2022-11-14T14:33:15Z")

</div>

Your `DesignerHook` class appears to extend Vision's `AbstractClientModuleHook`. Did you mean to extend `AbstractDesignerModuleHook` instead?

---

<div class="post-metadata">

**Author:** ![Jean\_Traversi](https://avatars.discourse-cdn.com/v4/letter/j/ce73a5/32.png) [@Jean\_Traversi](https://forum.inductiveautomation.com/u/Jean_Traversi)\
**Post date:** [November 14, 2022, 2:38pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/3 "2022-11-14T14:38:40Z")

</div>

My class DesignerHook already extends of `AbstractDesignerModuleHook `

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 14, 2022, 2:40pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/4 "2022-11-14T14:40:59Z")

</div>

> [@Jean\_Traversi](#):
>
> ```auto
> caused by NoClassDefFoundError: com/inductiveautomation/vision/api/client/AbstractClientModuleHook
> caused by ClassNotFoundException: com.inductiveautomation.vision.api.client.AbstractClientModuleHook
> 
> ```

Then perhaps it has a reference to AbstractClientModuleHook somehow? You have all the information here and I have none of it, so help me out.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 14, 2022, 2:46pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/5 "2022-11-14T14:46:46Z")

</div>

Look in your designer's diagnostic console to see the full error, with line number in your code that triggers it. (If you can't launch far enough to get to that console, run the designer's java command from a terminal.)

---

<div class="post-metadata">

**Author:** ![Jean\_Traversi](https://avatars.discourse-cdn.com/v4/letter/j/ce73a5/32.png) [@Jean\_Traversi](https://forum.inductiveautomation.com/u/Jean_Traversi)\
**Post date:** [November 14, 2022, 3:33pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/6 "2022-11-14T15:33:35Z")

</div>

I understand my error when i launche the designer `DesignerHook` add Bundle of `ClientHook` using `AbstractClientModuleHook` but without Vision module the bundle added is null and this throw an error.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 14, 2022, 3:44pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/7 "2022-11-14T15:44:15Z")

</div>

You need to use the context's API to get a reference to the Vision module (like you would do to add a component to its palette), and if null, don't do anything that would load classes from Vision, even indirectly.

---

<div class="post-metadata">

**Author:** ![Jean\_Traversi](https://avatars.discourse-cdn.com/v4/letter/j/ce73a5/32.png) [@Jean\_Traversi](https://forum.inductiveautomation.com/u/Jean_Traversi)\
**Post date:** [November 14, 2022, 4:04pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/8 "2022-11-14T16:04:53Z")

</div>

OK thank you, it's the same way to check if perspective module existe ?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 14, 2022, 4:09pm UTC](https://forum.inductiveautomation.com/t/error-when-i-launched-the-designer/66470/9 "2022-11-14T16:09:37Z")

</div>

Yes. Get the module manager from the context, then use its API to request the other module object (which is that module's gateway hook object, fwiw).

Use reflection if needed to test-load classes without failing your whole module.
