Внимательно рассмотрите свой дизайн, так как кажется, что вы входите в программирование "процедурного стиля", а не в ОО. Вероятно, это первая из многих проблем с вашим дизайном, с которой вы, вероятно, столкнетесь.
У меня есть идея, которая может сработать; Вы можете заставить эти классы реализовать определенный интерфейс? Если это так, вы можете использовать обычные аннотации @Inject в своем коде с интерфейсом, а затем поместить реализацию класса в каталог / lib на сервере. Это, в сочетании с альтернативами CDI, может дать вам то, что вы хотите.
Лучшим подходом может быть использование отражения и какой-то фабрики ...