циклические зависимости maven

У меня есть модульный проект Maven, в котором два модуля, "BIZ" и "EJB" содержат что-то вроде этого:

//PART OF "BIZ" Module:

public interface MyInterface{

 public void foo();

}
............................................
public class ImplFactory{

public static MyInterface getInterfaceImplementation(){
MyInterface ret=null;
Class<? extends MyInterface> cl = null;
                try {
                    cl= (Class<? extends MyInterface>) Class.forName("InterfaceImpl");
                    ret= cl.newInstance();
                    }
                ....
                ret ret;
}
.......................................
public class MyClassX{

    public static void doSomethingX(){

    }
}

//PART OF "EJB" Module:

public class InterfaceImpl implements MyInterface
@EJB
private MyEJB1 ejb1;

public void  foo(){
    ejb1.doSomething();
}
........................................
@Stateless
public class MyEJB1{

    public void doSomething(){
    ...
    MyClassX.doSomethingX();
    ....
    }

}

Как вы видите,"EJB" зависит от "BIZ" как он используетMyClassX (по правде говоря, он использует несколько классов BIZ). Это причина, почемуImplFactory использует отражение, чтобы создать экземплярInterfaceImpl, Проблема вcl.newInstance () броситClassCastException поскольку эти 2 модуля относятся соответственно к WAR и JAR (модуль "EJB" компилируется с указанием type = "ejb" и использует плагин maven ejb) и использует разные ClassLoaders (он работает на JBoss 7). С другой стороны,InterfaceImpl не может быть перемещен в BIZ, поскольку это необходимоMyEJB1 для его работы, и это приведет к циклической зависимости.

Итак, мой вопрос: как бы вы решили эту сложную ситуацию (программно или путем изменения конфигурации)? Я надеюсь, что вы можете помочь мне! Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос