This can occur when you have beans that depend on each other and are deployed in the wrong order. If you have multiple deployment units (bean jars) and some do depend on others, you can easily check this by first cleaning your deployment dir, start jboss and than hot-deploy the jars one by one in the right order (i.e. make sure beans that a ejb jar depends on are deployed before).
If this is the case, the structural approach is one of:
- package ejb-jars recursively in one jar, being dependent on each other inside out; (btw, this way of packaging is JBoss specific)
- prepend the names of the jars with a number, and use a different deployer that deploys jars in the order of their number, see comments in the jboss-service.xml.